• 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.
Been rockin' mine for ages :p

Also, I reeeally could use some more votes on my Greenlight campaign for OCTAHEDRON!

http://steamcommunity.com/sharedfiles/filedetails/?id=534653006

If you like what you're seeing, it would be super cool if you could vote!

E1wydkg.gif

Fuck i'm late to this.

Voted!
 

jarosh

Member
I agree with this.

I use Unity but my biggest beef was their OEM RigidBody2D stuff. Pixel perfectness will require raycasting, a lot of looking ahead and some of your own trick averaged deltatime since Unity's smoothed deltatime is a flat average. I found it best to roll your own and look for variations.

I think Unity's largest advantage is their scene editor. I found it to be the easiest to work with next to UE4. Everything else feels half-cooked and left me ripping my hair out.

I spend most of my Unity time in scene view and Visual Studio. I use a few of Unity's built-in stuff like effects but have used many of those as bouncing platforms and dove straight into their code (keeping the originals, of course).

GML is far easier than C# and lets you write a bit loose, if needed. Sometimes I want to throw my fucking computer at the wall with shit Unity thinks is bad code or won't execute. Most of the time it's because they deprecate shit every damn update and constantly break things so I'm constantly fixing things that used to work because of an IDE update.

I'm kinda getting tired of Unity's shit, tbh. Like adding stuff is cool, but suddenly changing the way things are done seemingly "just because" is shit no dev likes dealing with.
Haha! Yeah, but honestly I've had many similar frustrations with GM. I think unless you code your own engine from scratch (something I definitely CAN'T do), if you're a perfectionist you'll inevitably run into these types of limitations and annoyances. I have not updated GM:S in like half a year because every new update has been introducing so many issues, breaking tons of stuff for me.

Fuck i'm late to this.

Voted!

Thanks, man!


Here's an example of two tools I made for OCTAHEDRON to do some useful stuff at runtime in GM:

First is a particle tester. I wrote "wrappers" for all the particle functions in GM to store each particle and its properties in a data structure as soon as it's created or whenever it is changed in code. And then I made this little debug tool. Now I can go through the entire index of particles and test them and change all the properties at runtime and also create particles with the mouse (they are mostly white here, because color is only later added from the respective object).

k3xwUIg.gif


And this one is a simple debug color picker that let's me adjust the colors of whatever I'm working on at runtime (since practically all my sprites are black and white). Much easier to find nice color combinations this way. Here I'm adjusting the two base colors of an enemy:

Uc62pWM.gif
 

cyborg009

Banned
Yeah I'd totally recommend GameMaker for something like this. I've got from zero programming experience to actually making a GameMaker game in about 1.5 years; happy to offer whatever advice or troubleshooting I can - those newbie quirks are still fresh in mind.

Are you a decent artist as well? I assume doing pixel art would be easier than 3D models in unity.
 

Blizzard

Banned
Last time was my first top 100 category in Ludum Dare, and I didn't expect to get two top 100's this time.

#28 innovation previously. This time, #17 innovation, #68 theme, out of 1232 compo entries. I'm happy about high innovation. I spent a lot of time on the graphics and still haven't matched my score for my very simple graphics several compo entries ago though.

Fun was of course my worst category since the game was so hard. :p
 

bumpkin

Member
I'm getting to a point where I think I need to start worrying about game object state for my characters, and I'm having some degree of difficulty deciding which is the best approach. I've read up on a bunch on gameprogrammingpatterns.com, but I don't really feel like I know which is right for me.

I'm intrigued by the hierarchal state and pushdown automata because of their flexibility, just not clear exactly on how to implement either correctly. My confusion has to do with the where/how of changing the current state to a new one.

What approach do you guys like/use and why?
 

Blizzard

Banned
Achievement unlocked: Get turned down by Nintendo for full developer program.

Since it has a large cooldown, I'll be stuck with the Wii U program for a while it looks like. :p
 

bumpkin

Member
Achievement unlocked: Get turned down by Nintendo for full developer program.

Since it has a large cooldown, I'll be stuck with the Wii U program for a while it looks like. :p
Have you put out any games on the eShop yet? I come and go from this thread so much, I know I've probably missed a GAF'er made game announcement here or there.
 

Blizzard

Banned
Have you put out any games on the eShop yet? I come and go from this thread so much, I know I've probably missed a GAF'er made game announcement here or there.
Nope, only in development. So a rejection is reasonable. I just wanted to try on the off-chance, since the full developer site got updated and whatnot, and I have embedded / board bring-up experience that might help with a new console.
 

friken

Member
Hey guys... I'm back at it after a long break focusing on other life stuff (short for I got lazy and slacked off for many months). As always, the posts here help motivate me and keep going.

As I'm getting back into stardiver dev, I started w what is fun to me (not what needs doing)...lol. So, I wanted gas giants to look more banded and flowing more. I got something I love the look of, but I am getting what I suspect is material rendering order issue making it flash (similar to z fighting. All layers are particle/multiply or multiply-double). For unity devs on here, is there any way to lock down the order the engine renders it's materials?

Here is the a video of the issue:
https://www.youtube.com/watch?v=x7AJWUYJLZU&feature=youtu.be

UntidyWarpedIggypops.gif


I could just call it a lightning storm... and every gas giant has it in the brightest areas, heh...
 
I'm not a Unity dev so I can't help you there, but I'm really glad to see you posting again! I was actually just thinking of Star Diver a couple days ago. :)
 
Are you a decent artist as well? I assume doing pixel art would be easier than 3D models in unity.
Not personally, but we are using pixel art and I do recommend it for a first project due to it being very easy to use and clear and concise when it comes to managing collision.
 

Jumplion

Member
Here's an example of two tools I made for OCTAHEDRON to do some useful stuff at runtime in GM:

First is a particle tester. I wrote "wrappers" for all the particle functions in GM to store each particle and its properties in a data structure as soon as it's created or whenever it is changed in code. And then I made this little debug tool. Now I can go through the entire index of particles and test them and change all the properties at runtime and also create particles with the mouse (they are mostly white here, because color is only later added from the respective object).

*pretty images*

And this one is a simple debug color picker that let's me adjust the colors of whatever I'm working on at runtime (since practically all my sprites are black and white). Much easier to find nice color combinations this way. Here I'm adjusting the two base colors of an enemy:

*pretty images*

Thanks for the insight. How long did it take for you to make the debugging tool itself? It'd probably be nice if I sat down and hashed something out, but it's probably not necessary.

I recently implemented some basic color shifting. I was actually surprised how easy it was and how it already made the game feel much better and more dynamic.


It's a simple Lerp between Red and Blue, with the t value being proportional to how far it is from the center. Definitely going to play around with it
 

Blizzard

Banned
vm2h6s14.png


This marks the end of basic script features I wanted to implement. I may need lots more, but I am hoping this is a reasonable starting point. The left side code is in an ordinary text file, and the right side shows program output. The script is compiled to bytecode and then executed. This also shows a feature I added today, native functions. The "Pow()" function is implemented in actual C++ code, but the other functions are implemented in the script. Both types of functions can be called from scripts.
 

Jobbs

Banned
Hey guys... I'm back at it after a long break focusing on other life stuff (short for I got lazy and slacked off for many months). As always, the posts here help motivate me and keep going.

As I'm getting back into stardiver dev, I started w what is fun to me (not what needs doing)...lol. So, I wanted gas giants to look more banded and flowing more. I got something I love the look of, but I am getting what I suspect is material rendering order issue making it flash (similar to z fighting. All layers are particle/multiply or multiply-double). For unity devs on here, is there any way to lock down the order the engine renders it's materials?

Here is the a video of the issue:
https://www.youtube.com/watch?v=x7AJWUYJLZU&feature=youtu.be

UntidyWarpedIggypops.gif


I could just call it a lightning storm... and every gas giant has it in the brightest areas, heh...

Nice! Welcome back!
 
Guys.

I'm sure you know this and have met these types, especially as indie devs.

But there are gonna be people out there, some that even call themselves your friends, that take the time out of their day to make sure you know that you are doing the wrong thing, working with the wrong people, and are fucking up.

These people have every opportunity to slow down and raise their concerns in a much more valid light, but for selfish reasons, will chose not to. When confronted with the truth that they have no say, they will get hostile. They will act like it is your problem for not listening, because they know better. They will act like you are not even taking their concerns into consideration. That you simply do not give a shit about your own project.

Take comfort in the fact that you will never, ever change these peoples minds.

Just ignore these people.

So yeah my day was pretty crazy.
 

jarosh

Member
Thanks for the insight. How long did it take for you to make the debugging tool itself? It'd probably be nice if I sat down and hashed something out, but it's probably not necessary.

I just found myself wasting a ton of time making tiny adjustments to particles and colors in code, compiling the game, not being happy, going back to making tiny adjustments etc. Huge waste of time. Especially with particles it's basically a guessing game. Even using an external particle creation tool for GM, it's not the same, you don't know what the effect will actually look and feel like in the game. And with colors being so important in my game, again, I needed a tool that would let me adjust them at runtime to see the result immediately.

The particle tool took maybe 3 or 4 days to finish. It was the first one I made, so I had to do it from scratch. And writing all the wrapper functions to store particles and properties in data structures took a while, same with figuring out the interface and keyboard input. But it was so worth it in the end. Using the same template, the color tool was done in just a day.

Additionally I also made an external color picker to generate the necessary GML code for convenience when I'm just coding:

AQ1KAhV.png


I recently implemented some basic color shifting. I was actually surprised how easy it was and how it already made the game feel much better and more dynamic.



It's a simple Lerp between Red and Blue, with the t value being proportional to how far it is from the center. Definitely going to play around with it
Have you experimented with making things bouncier in general, and making objects grow and shrink? I also see a lot of sudden appearing and disappearing instead of maybe having things shrink/grow/fade with easing functions. Although it's hard to give specific advice, since I don't really understand your game and have no idea what's actually going on in the gifs :p
 

Blizzard

Banned
Here is a live script reload demonstration. Please forgive the low-framerate GIF since gifcam was not cooperating. The program on the right runs at 60 fps in reality.

script_test_1yajui.gif


For performance reasons, I want to avoid using scripts for animations like that, but it is neat that it works.
 

jarosh

Member
Here is a live script reload demonstration. Please forgive the low-framerate GIF since gifcam was not cooperating. The program on the right runs at 60 fps in reality.

For performance reasons, I want to avoid using scripts for animations like that, but it is neat that it works.

That IS neat. Wish I had anything approaching scripting like that in GM.
 

V_Arnold

Member
That is kinda how I do all my animations in javascript :D (Yeah, I know, not the same, but still!) Also, take those evil types away from my eyes! INT???? It hurts!
 
Hey guys... I'm back at it after a long break focusing on other life stuff (short for I got lazy and slacked off for many months). As always, the posts here help motivate me and keep going.

As I'm getting back into stardiver dev, I started w what is fun to me (not what needs doing)...lol. So, I wanted gas giants to look more banded and flowing more. I got something I love the look of, but I am getting what I suspect is material rendering order issue making it flash (similar to z fighting. All layers are particle/multiply or multiply-double). For unity devs on here, is there any way to lock down the order the engine renders it's materials?

Here is the a video of the issue:
https://www.youtube.com/watch?v=x7AJWUYJLZU&feature=youtu.be

UntidyWarpedIggypops.gif


I could just call it a lightning storm... and every gas giant has it in the brightest areas, heh...

welcome back, I also had something similar but for different reasons, progress was slow, but near the year end re-started in full force again development of my game. As usual your posts are inspirational even for me to keep going.
 

Blizzard

Banned
That is kinda how I do all my animations in javascript :D (Yeah, I know, not the same, but still!) Also, take those evil types away from my eyes! INT???? It hurts!
Writing my first compiler, I will take what I can get to make things easier. Explicit types means less headaches and probably better performance for me. :p
 

Jumplion

Member
Have you experimented with making things bouncier in general, and making objects grow and shrink? I also see a lot of sudden appearing and disappearing instead of maybe having things shrink/grow/fade with easing functions. Although it's hard to give specific advice, since I don't really understand your game and have no idea what's actually going on in the gifs :p

It's a simple "dodge everything" game, using the phone's accelerometer as input for movement. You're right about the (dis)appearing stuff, I should get around to putting in some juice there, though I've been more focused on other broader things obviously (I DEFINITELY need to make the player more easily visible somehow). I'd rather avoid changing the size of the enemies since precision is so important in these bullet-hell-y kind of games, and I did get a complaint before when testing that the enemies were so small that it was easy to dodge them, but maybe a small shimmy would be okay to make things more lively. I don't have any music in the game yet to shimmy to the beat, but I could probably do a little bit of that.
 

missile

Member
... Also, take those evil types away from my eyes! INT???? It hurts!
I feel secure when seeing ints. xD


Here is a live script reload demonstration. Please forgive the low-framerate GIF since gifcam was not cooperating. The program on the right runs at 60 fps in reality.

script_test_1yajui.gif


For performance reasons, I want to avoid using scripts for animations like that, but it is neat that it works.
Oh, that's nice! What's up next?

Regarding interpretation, years ago I did some programming on the COSMAC VIP
and ELF (one of the first cheap home computers all around) and discovered a
byte-code interpreter which interprets a virtual machine called CHIP-8 running
on the VIP, implemented for making small games etc. I did some programming
with CHIP-8 and was simply amazed, likewise with the VIP and ELF, and
especially about the man behind, Joseph Weisbecker. The CHIP-8 virtual machine
was also used in a modified form on one of the first video game consoles, i.e.
the RCA Studio II (about 1977)

iyrvImT.png


, but stood no change against the Atari 2600 which came a couple of month
later, yet the concept was way advanced. Well, the kicker with CHIP-8 was that
the virtual machine used less than 40 instructions including arithmetic,
control flow, graphics, and sound. And, most interestingly, the interpreter
for this machine was only 512 bytes long, the size of a bootsector. The
conceptual advantage was not only of portability, but also of writing good
games with just a couple of bytes. Most games were less than 1k bytes long.
The classic Pong was just 246 bytes and Invaders about 1.3k bytes which fits
nicely within the memory limitations of the time, about 2k bytes of RAM for
the standard COSMAC VIP (the ELF had only 256 bytes).

One can learn a lot from the beginnings. The COSMAC ELF is perfect for self-
education about computers from the round up. One part which was very
interesting to me, and for everyone interesting in core video graphics, is
that Joseph Weisbecker designed the first integrated (LSI) bit-mapped graphics
controller (CDP1861, Pixie), know better as a video display controller back in
the days, which generated the video signal from a bit-mapped graphics in main
memory send via DMA to the video controller with the help of interrupts. I
think this is where video accelerators started. The same concept can later be
found in all the CRT controllers (as they were commonly called) sitting in the
back of your old CGA, VGA, etc. generating mainly the video signal for the
monitor out of an character ROM addressed by a character memory page sitting
in main memory.
 

missile

Member
The above writing motivated me to write a bit more about my current project,
Retrotron, and its real-world counter-part.

Recently I said that I'm going to build a real counter-part of Retrotron using
a micro-controller and a mini CRT while generating all the signals in
software. This, basically, is the same as what the Pixie or any other CRT
controller did back then, yet I try to do it in software, meaning I'm going to
simulate a simple CRT controller in software which, given some RAM and a dot-
clock, should output a composite video signal to drive a real TV/CRT.
Basically, one should be able to take the controller and connect it with the
composite video input of ones own TV getting whatever cool graphics on the
screen the controller generates at that instance. But not only do I want to
generate the video signal myself, I also want to control the TV/CRT on its
own. In the end this should be my little video hacking computer fully
simulated in software with a real CRT displaying all the cool stuff.

One thing that got me hooked since ever is about generating a different scanning
pattern for the beam of an CRT. Instead of generating a linear scanning
raster, what about letting the beam scan the screen in a spiral from the
inside out? With the project described as is, it should become possible to do
it some day. This would be a new way of scanning a TV (perhaps 30 years late
xD) which becomes possible by generating all the complex signals in software/
digitally. I don't know if this will be of any huge advantages over linear
raster-scan, but I may imagine that the flickering will be less pronounced
(perceptual-wise) and that we can produce higher-resolution composite video
signals, because there will be no horizontal blanking interval resp. retrace,
only a retrace of the beam from the outside to the inside, i.e. half the
screen width. So the spiral-scan vertical retrace time compared to the
standard linear raster vertical retrace time reduces to just half the time of
the standard horizontal retrace time. Hence, this will be utterly fast. One
may also try to scan the screen using space-filling curves. Lots of
possibilities here. But there is more. Being able to scan arbitrarily would
allow to combine raster and vector displays, for, you can have vectors
displayed like on a vector display but you also can display raster (shaded-)
graphics at the same time because you can define a scanning pattern for such
(shaded) objects and raster along that pattern. Sounds crazy, does it? xD

However, that's for the future. I need to make the first step first. I finally
now got together some very small CRT tubes to work with.

vSTHI2U.png


I ordered a couple of controllers like an RPI, some Arduinos, etc. The one in
the picture is a Teensy++ 2.0. Don't know which controller to use, yet. I want
to keep it small, very small, should all run from a just a battery cell.
However. This real-world counter-part of Retrotron is a side project of
mine. Don't expect cool result too soon. I think I will need to burn quite
some time getting the controller to generate a proper (real) composite video
signal. Anyhow, I can't wait displaying some games or animations on it! :)
 

missile

Member
^ Possible! xD Don't know, I'm just following some of my interests. That's it.

Hey, with a bit of luck your game Ghost Song may be displayed on the little
tube to the right. That's the tube I'm going to start with (needs less high-
voltage, a bit easier to deal with etc.).
 

Jobbs

Banned
I'd like to see that.

I'd love my game to look more like it was coming through a retro signal, as I'm sure I've said before. The mild color separation effect I use is mainly in that pursuit, even though it's not adequate.
 
Guys.

I'm sure you know this and have met these types, especially as indie devs.

But there are gonna be people out there, some that even call themselves your friends, that take the time out of their day to make sure you know that you are doing the wrong thing, working with the wrong people, and are fucking up.

These people have every opportunity to slow down and raise their concerns in a much more valid light, but for selfish reasons, will chose not to. When confronted with the truth that they have no say, they will get hostile. They will act like it is your problem for not listening, because they know better. They will act like you are not even taking their concerns into consideration. That you simply do not give a shit about your own project.

Take comfort in the fact that you will never, ever change these peoples minds.

Just ignore these people.

So yeah my day was pretty crazy.

Thanks for this- had some people shit all over my hopes and dreams earlier, so knowing I'm not alone with this kinda helps.

Hope your day got better too, heh.
 

missile

Member
Next is actual game logic, but implementing certain parts of the game with scripts so I can customize/change/mod them easily.

Neat history you posted! That was before my time -- I started with a 286.
Not saying a was alive at this time. xD I used the COSMAC via emulation
(should have made this clear within the text).


I'd like to see that.

I'd love my game to look more like it was coming through a retro signal, as I'm sure I've said before. The mild color separation effect I use is mainly in that pursuit, even though it's not adequate.
Yeah you said that. The color separation effects you use are more or less
interpreted as CA within the gaming world. I think there are more subtile
effects stemming from TV to use for games. On real TVs a similar effect as the
one you are using occurs in three cases (yet static in most cases) (a) when
there is a convergence problem towards the edges of the screen, which every
color TV has to some degree, (b), when the coils go nuts (slightly shorted
etc.), and (c), when the shadow mask heats up to a large degree suffering
distortions. Point (c) can be interesting for games. Meaning, bright colors/
regions may heat your mask (locally in that region) distorting it while
changing the colors slightly in that region. If the bright colors are taken
away, the mask will cool down yet will still display somewhat wrong colors
up until the mask is back at working temperature. Rest assured Retrotron will
have this implemented. There is more stuff, but I can't give them all away,
yet.
 

friken

Member
welcome back, I also had something similar but for different reasons, progress was slow, but near the year end re-started in full force again development of my game. As usual your posts are inspirational even for me to keep going.

Having taken such a long break, I was half worried that everyone I was watching back then had already shipped their games to great success... you know just to rub it in how guilty I feel for slacking :)
 
Hi there Indie GAF! So I had this idea of mixing some RPG elements in a classic board game and I know that variations of board games have been around a long time ago but I wanted it to have a different flavor so me and a couple of my friends made a sci-fi board game where each piece has HP, either 1, 2 or 3, and you can control 4 types of ships. Each ship class have unique moves and different strengths and weaknesses. One other this is that there are 5 objects on the board that function as obstacles that you can use them to your advantage. The quirk is that each of those obstacles are spread and generated randomly each time you start a match.

We've reached beta at this point so most of the art is kinda final but there are some things from the UI that are placeholders.

(Link to images since idk how to resize them for this, lol)
http://batu-games.com/press/atriage/images/screen7.png
http://batu-games.com/press/atriage/images/screen8.png

Right now we're in Greenlight around 55% on the way to top 100 so if you like what you see please give us a hand.

Also any tips on places to put the game in (already did IndieDB, FB, Twitter, Tumblr) that it can get more views since we only have around 1k it would be awesome. :)

The game is made in Unity so any q's on that I'll be happy to oblige.
 

friken

Member
Hi there Indie GAF! So I had this idea of mixing some RPG elements in a classic board game and I know that variations of board games have been around a long time ago but I wanted it to have a different flavor so me and a couple of my friends made a sci-fi board game where each piece has HP, either 1, 2 or 3, and you can control 4 types of ships. Each ship class have unique moves and different strengths and weaknesses. One other this is that there are 5 objects on the board that function as obstacles that you can use them to your advantage. The quirk is that each of those obstacles are spread and generated randomly each time you start a match.

We've reached beta at this point so most of the art is kinda final but there are some things from the UI that are placeholders.

(Link to images since idk how to resize them for this, lol)
http://batu-games.com/press/atriage/images/screen7.png
http://batu-games.com/press/atriage/images/screen8.png

Right now we're in Greenlight around 55% on the way to top 100 so if you like what you see please give us a hand.

Also any tips on places to put the game in (already did IndieDB, FB, Twitter, Tumblr) that it can get more views since we only have around 1k it would be awesome. :)

The game is made in Unity so any q's on that I'll be happy to oblige.

If the game is far enough along in dev, try and get a build to youtubers for some play coverage. I have my fingers crossed that I can get some marketing mileage from the tubers out there once I have a playable alpha/beta.
 
Status
Not open for further replies.
Top Bottom