• 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.

Indie Game Development Discussion Thread | Of Being Professionally Poor

Status
Not open for further replies.

Anustart

Member
Music works perfectly now, and setting up those resets on statics in Awake() reloads levels correctly now! Thanks! All systems go once again!
 
I kept mashing x when people would walk by, couldn't sell anything :(

Ended up with like -250 bucks.


Aww sorry! Not everyone will buy stuff, especially if it's broken or expensive. try selling plants and cereal etc? if they don't buy them still, then it might be a bug ><
 
Finished up my Ludum Dare Jam entry, collaborated with Will who runs the local jam meetups.

Hyperdimensional Gorofu Shot Champion

It's basically golf meets Star Fox meets terrible localization.

swing.png
 
Are there any good resources out there for how to go about structuring game code that's more complex than the typical tutorials?

I find that every time I get past around the tutorial level of complexity, I hit this paralysis wall where I'm not sure how to build my code out in a way that makes it easy to keep expanding and experimenting.

Are there any good articles on that kind of thing, or is my best bet to find an open-source game and comb through the code?
 

HelloMeow

Member
For the last couple of weeks I have been trying to make a rhythm game,
where the player can use music from his/her own library.

It's a bit like Audiosurf. The game will generate a track based on the player's music choice,
but the comparison ends there.

http://www.youtube.com/watch?v=tgWkI1jouHY


It's made with Unity and I'll be releasing the source for the audio analysis and the mp3 import stuff, once it's in good shape. It's a real mess right now, because of all of the experimenting and fine tuning.

I'm not sure in which direction I want to take this, but I have a couple of good ideas. It could go anywhere from here.
 

Blizzard

Banned
Are there any good resources out there for how to go about structuring game code that's more complex than the typical tutorials?

I find that every time I get past around the tutorial level of complexity, I hit this paralysis wall where I'm not sure how to build my code out in a way that makes it easy to keep expanding and experimenting.

Are there any good articles on that kind of thing, or is my best bet to find an open-source game and comb through the code?
That gets into software engineering / design in general. I would say object-oriented design is common with C++, Java, even some scripting languages like UnrealScript. It's such a broad subject that I'm not sure what would be a good starting point for you. What language(s) do you typically program in when you hit the wall?
 
For the last couple of weeks I have been trying to make a rhythm game,
where the player can use music from his/her own library.

It's a bit like Audiosurf. The game will generate a track based on the player's music choice,
but the comparison ends there.

http://www.youtube.com/watch?v=tgWkI1jouHY



It's made with Unity and I'll be releasing the source for the audio analysis and the mp3 import stuff, once it's in good shape. It's a real mess right now, because of all of the experimenting and fine tuning.

I'm not sure in which direction I want to take this, but I have a couple of good ideas. It could go anywhere from here.
Very cool stuff. A friend and I messed around with music visualization in Unity as well a few weeks back -- I was surprised how easy it was to do in Unity actually. We never really took it further into game territory though; I think I worship Audiosurf too much when it comes to music games and felt like everything we thought of and began to prototype simply didn't compare. I would love to see your code though (especially the import stuff!), so definitely post the source here when you put it up.
 
That gets into software engineering / design in general. I would say object-oriented design is common with C++, Java, even some scripting languages like UnrealScript. It's such a broad subject that I'm not sure what would be a good starting point for you. What language(s) do you typically program in when you hit the wall?

I've been mostly sticking to C# or Java -- right now I'm messing around with MonoGame. I'm pretty familiar with object-oriented design concepts but I've never done anything with the scope of a full game. I was playing around with Game Maker quite a bit before trying MonoGame, but I was getting frustrated at how it handles things like data structures, so I decided to move back to a more "real" language.
 

HelloMeow

Member
Very cool stuff. A friend and I messed around with music visualization in Unity as well a few weeks back -- I was surprised how easy it was to do in Unity actually. We never really took it further into game territory though; I think I worship Audiosurf too much when it comes to music games and felt like everything we thought of and began to prototype simply didn't compare. I would love to see your code though (especially the import stuff!), so definitely post the source here when you put it up.

I have seen a lot of people struggle with importing mp3 files at runtime with Unity.
I have sort of released that part already, come to think of it. Here it is, including a small tutorial on how to use it:
http://answers.unity3d.com/questions/380838/is-there-any-converter-mp3-to-ogg-.html

Visualizing music in Unity is pretty easy, indeed.
You can easily get the spectrum data from any AudioSource, but only for the current frame. I have tried to take that route, but it didn't work out. It didn't prove to be that useful if you want to get something consistent, or if you need to analyze something beforehand. It really depends on the kind of game you want to make.

It gets a bit more complicated if you want to do have something consistent, or if you need to have data for the upcoming bit of music, or the entire song.

These articles were very helpful to get me started. A significant part of my audio analysis code comes from those articles. Fine tuning and expanding upon it was the hard part. (also finding an FFT class that gave good results)
 

missile

Member
Are there any good resources out there for how to go about structuring game code that's more complex than the typical tutorials?

I find that every time I get past around the tutorial level of complexity, I hit this paralysis wall where I'm not sure how to build my code out in a way that makes it easy to keep expanding and experimenting.

Are there any good articles on that kind of thing, or is my best bet to find an open-source game and comb through the code?
Well, I guess someone wrote a master thesis about it, but.... I would go for a
real example, i.e. open-source (esp. formerly closed-source) code. But every
game/code is different.

Personally, I try to structure my code/data not too much during development
since it complicates me in "expanding and experimenting" esp. during
development of new algorithms. I almost always use plain native structures at
first instance and feed the algorithms only the necessary data instead of
entire objects or even worst embedding algorithms with the data (OOP). This way
I always get a loosely coupled system and can combine it into a more complex
one as needed in warping logical layers whatever over it. The basic building
blocks of a game needs to be, well, basic. If they are already too
complicated, then it becomes difficult using them in a bigger systems.
 

billsmugs

Member
I re-did my jumping code to fix the frame rate having an effect on the height (it still has a tiny effect which is unavoidable but also barely noticeable unless the frame rate drops from around 200 down to 30fps) and also to make it nice and parabolic, but I found an annoying aspect of Unity in that you can't copy from the console (or at least not in bulk).

In order to make a graph to check my code, I had to set the Debug.Log() with a string identifier and the time and height, then run the game and do some tests. When I was doing my PSM game I'd just copy the data from the console in one go and paste it into a spreadsheet, but with Unity the only way I found was to locate the Editor.log file, download Notepad++ and open the log in that, search for the string and choose "bookmark lines" then choose Search->Bookmarks->remove unmarked lines, wait for it to finish deleting over 20,000 unwanted lines, then do a find and replace to delete the string, THEN I could finally copy the data I wanted and make the graph below (the last position on each curve is a bit dodgy because I haven't accurately set up the test for if the player is grounded yet. I believe the anomalous black point is due to a brief freeze that occurred):
1G6CmNG.png


Is there no easier way to get data written to the console in Unity, or do I have to set up a text file writer class to easily capture data? I Googled it and found references to a system console, but I think that's on Mac only. I like being able to graph data when testing/debugging, but Unity makes it more annoying than it should be, which is odd given how Unity seems to try to make other things much easier (I love the inspector for tweaking public variables for example!)
 

Turfster

Member
but with Unity the only way I found was to locate the Editor.log file, download Notepad++ and open the log in that, search for the string and choose "bookmark lines" then choose Search->Bookmarks->remove unmarked lines, wait for it to finish deleting over 20,000 unwanted lines, then do a find and replace to delete the string, THEN I could finally copy the data I wanted
This is why my own debug log/console thing was the first thing I ported to Unity.
You're probably better off rolling your own.
 

JulianImp

Member
This is why my own debug log/console thing was the first thing I ported to Unity.
You're probably better off rolling your own.

Yeah, you can add Log methods to your classes to make them listen in to anything that's logged by Unity's Debug.Log<Whatever> methods, and then compile the data and filter it, dump it, copy it into the clipboard (I found a possible implementation at http://answers.unity3d.com/questions/266244/how-can-i-add-copypaste-clipboard-support-to-my-ga.html) or whatever you actually need to do with the data.
 

phantomsnake

Neo Member
My game Micron is now live on Indie Royale! I'm kinda freaked out by the number of people who'll be getting the game now! I also wish I'd had the chance to make a better trailer. :)
 

billsmugs

Member
This is why my own debug log/console thing was the first thing I ported to Unity.
You're probably better off rolling your own.

Yeah, you can add Log methods to your classes to make them listen in to anything that's logged by Unity's Debug.Log<Whatever> methods, and then compile the data and filter it, dump it, copy it into the clipboard (I found a possible implementation at http://answers.unity3d.com/questions/266244/how-can-i-add-copypaste-clipboard-support-to-my-ga.html) or whatever you actually need to do with the data.

OK, thanks. I'll look into setting something like that up in the future. For now I found out that you can copy individual lines of the console, so I've got a class with a static method that simply adds the input to a string and puts a "\n" on the end, then I have a debug object in the scene with a button in the inspector that causes a Debug.log() on the huge string, which I can then copy with Ctrl+c. It's not ideal but it will keep me going until I get round to setting up something more complicated.
 
Well, I guess someone wrote a master thesis about it, but.... I would go for a
real example, i.e. open-source (esp. formerly closed-source) code. But every
game/code is different.

Personally, I try to structure my code/data not too much during development
since it complicates me in "expanding and experimenting" esp. during
development of new algorithms. I almost always use plain native structures at
first instance and feed the algorithms only the necessary data instead of
entire objects or even worst embedding algorithms with the data (OOP). This way
I always get a loosely coupled system and can combine it into a more complex
one as needed in warping logical layers whatever over it. The basic building
blocks of a game needs to be, well, basic. If they are already too
complicated, then it becomes difficult using them in a bigger systems.

That is great advice, thanks!

I think I may be over-complicating things.
 

Anustart

Member
Anyone feel up to giving me some input?

I need to create a visual for the end goal / end of level marker.

I was thinking some kind of portal looking thing but can't figure out what to do!

Example of a stage:

l6mv3L3.png
 

JulianImp

Member
OK - where does one start with Unity? Everything is installed and ready to go on my new laptop.

It depends on what you want to do. Unity lends itself quite well to 3D games, and you could try using the built-in First Person Controller prefab (in Unity's character package, I think) and build a map using cubes, spheres and various geometry objects using rigidbodies so that they fall, roll and can be pushed around by the player. You could play around with mass and drag values, build towers of boxes and having the player run into them to see how they react, for example. You could also play around with audio sources, seeing how the doppler effect works and other nifty things you might be using later on.

You could then create trigger areas that react to boxes or spheres being pushed into them, and that either create or destroy objects (say, a barrier blocking the way), and then try to have the player pick up and drop objects using a hand-coded script.

Another simple thing you can do is play around with lights (of the directional, point and spotlight varieties), as well as global illumination (reached from Scene -> Render Settings, I think).

I'd say a simple first person platformer could be doable and wouldn't take you too long to build, and it'd be a nice way to get used to Unity's basic functions without delving too much into coding. If you want to code some more, you could try to build moving platforms that work correctly (they're such a pain!). You could try other funny stuff such as a Katamari Damacy clone (destroy objects smaller than the ball when they collide against it, and add their size to the ball's) or try to go for a 2.5D platformer, or a relatively simple airplane/space game (AIs would be a pain, so you could try playing around with timed missions as in Crazy Taxi, for example).
 

AlexM

Member
Got confirmation today that PSM will never allow Vita only releases. Glad I didn't go too far on the shmup I'm developing because it would play like crap with a virtual controller on a tablet.

Looking into getting an actual dev license.
 

GulAtiCa

Member
OK - where does one start with Unity? Everything is installed and ready to go on my new laptop.

This is a really good site with video tutorials:
http://www.unity3dstudent.com

It does a good job of getting you started with the absolute basics.

For Ludum Dare 26 I've made an MGS-styled stealth game, mixed-in with some Metroid DNA.
In a pseudo-abstract world, you have to sneak around, find upgrades to explore the map and progress toward the epic final escape.

Download the game here:
http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=5454



It was a lot of fun to make. A nice break from my big project.

This was a really good entry! Running from the disembodied masks was quite creepy and fun.
 

PhiLonius

Member
OK - where does one start with Unity? Everything is installed and ready to go on my new laptop.

This is a great site that starts you off with the basics and works through everything from the interface to coding and includes how to make some basic games to wrap your head around Unity.

Would definitely recommend it to anyone starting out.
 

Dynamite Shikoku

Congratulations, you really deserve it!
Got confirmation today that PSM will never allow Vita only releases. Glad I didn't go too far on the shmup I'm developing because it would play like crap with a virtual controller on a tablet.

Looking into getting an actual dev license.

Shmups can actually be pretty good on tablets using relative touch controls (not a virtual stick)
 

Paz

Member
I really wanted to be more active in here after we announced our game but unfortunately a family member suddenly passed away and I've been out of commission for a while.

In the mean time my house mate has been working hard on the game and we are preparing a preview build to send out to press, he has been detailing his efforts in the official unity forums while waiting for his GAF account to be approved: http://forum.unity3d.com/threads/178385-Assault-Android-Cactus-twin-stick-shoot-em-up-(PC)

If you're a unity enthusiast then maybe our approach can help you, or maybe you have some suggestions that can help us.

Also, if anyone here is a games journalist or knows of someone that covers indie games like ours, please let me know!
 

missile

Member
I really wanted to be more active in here after we announced our game but unfortunately a family member suddenly passed away...


"Death leaves a heartache no one can heal,
love leaves a memory no one can steal."



On Monday we had the funeral of my girlfriend's grandma. She died in peace at
the age of 83. A wonderful woman she was.
 

desu

Member
This is a great site that starts you off with the basics and works through everything from the interface to coding and includes how to make some basic games to wrap your head around Unity.

Would definitely recommend it to anyone starting out.

That looks absolutely great! Sadly the unity thread is dead but something like that should be in the OP for unity!

Also condolence to Paz and missile.
 

KNT-Zero

Member
Finished up my Ludum Dare Jam entry, collaborated with Will who runs the local jam meetups.

Hyperdimensional Gorofu Shot Champion

It's basically golf meets Star Fox meets terrible localization.

Just tried it! It's difficult to actually put the ball in the hole, but still! Nice job :)

---
Seeing that everyone was posting about their LD game , here's mine! (Click on the image)



Maybe it's not that minimalist, but it was fun to make! I made it with Unity, created the models with Voxatron and made the audio with Garageband and Bfxr :) I'm definitely making another one game next time!
 

pixelpai

Neo Member
hey neogaf. i'd like to give an update on my project, which is currently called "project pixelAI". i have already released some screens a very while back and since reworked the whole game-engine. the game still is some kind of "picross"-clone and i still have very little time to work on it, but i hope some of you may appreciat a new screenshot:



for more infos please follow me on twitter @pixelplant_ios
 

Dascu

Member
Does anyone here have any experience with Locomotion or Mecanim in Unity3D? I've been using my own animations that I made in Blender, but I want to add in dynamic foot placement for going up stairs and slopes. However I cannot figure out how to do it. Some help would be really fantastic.
 

gofreak

GAF's Bob Woodward
Does anyone here have any experience with Locomotion or Mecanim in Unity3D? I've been using my own animations that I made in Blender, but I want to add in dynamic foot placement for going up stairs and slopes. However I cannot figure out how to do it. Some help would be really fantastic.

I don't have experience with either yet, but I've read that Mecanim doesn't yet have dynamic foot placement... something to check out yourself, but I believe that was the case up until recently anyway.
 

asa

Member
Something I tinkered with today: raycast shadows in unity free:

shadows.jpg


Webplayer link

Works quite okayish, probably bit too taxing solution and it's not too precise, but at least its fun to look at and play around :)

Got the idea from this blog post, didn't want to look at the code though, most likely his solution is way more elegant than mine, but it wouldn't had been as fun if I had the solution handed to me :) Unity coder is a nice blog btw, loads of cool stuff there for Unity users.
 

Anustart

Member
Something I tinkered with today: raycast shadows in unity free:

shadows.jpg


Webplayer link

Works quite okayish, probably bit too taxing solution and it's not too precise, but at least its fun to look at and play around :)

Got the idea from this blog post, didn't want to look at the code though, most likely his solution is way more elegant than mine, but it wouldn't had been as fun if I had the solution handed to me :) Unity coder is a nice blog btw, loads of cool stuff there for Unity users.

Very cool! I may try that!
 

missile

Member
Thx desu!


This is why my own debug log/console thing was the first thing I ported to Unity.
You're probably better off rolling your own.
Pretty much.


Here is quite an interesting read, called Expatriation, about Indie devs,
about the bright future we might go into, about the transition from AAA to
Indie - breaking the hegemony.
I didn't knew that four of the Hawken devs were former Project Offset guys -
getting wasted during the Larrabee failure.


That is great advice, thanks!

I think I may be over-complicating things.
Doing things in a complex way is surprisingly very easy.

Coming from assembler, every complex data-structure requires some additional
address calculation you're not seeing in any higher language. And at times the
address calculation requires more time to compute than the actual thing you
want to do with the retrieve data - not speaking about that addresses are
better held in registers wasting them if you have to keep too many around and
as such putting a burden on the inner-loop in some cases.

However, that's not the main reason to keep the data-structures as flat as
possible though it speeds things up even in high-level languages. The main
reason was given in my last post, i.e. during programming of algorithm. The
trick is to feed the algorithms only the absolute necessary data. This allows
for the highest flexibility while combining said algorithms. Many people sent
a full object straight to an algorithm while the algorithm has to peel out
the little piece of data it really needs making it dependent on the type of
the object (parameter). And the most inflexible way is to embed the algorithms
with the data (OOP). I think some people understand OOP the wrong way. OOP is
about data not algorithms.

A slight disadvantage of the above is that you have to spend more time coding,
initially, due to the fine grained loosely coupled building blocks. But it
pays off. Ones you have them you can wrap your logic around tying everything
together as needed. In that way "expanding and experimenting" is a given.
 

ninge

Member
Question about this, a friend of mine is building a game and needs to figure out how to draw a trail behind an object like you did with the golf ball.

Feel like helping a guy out? :)

store the position of the object each frame in a cyclical buffer - draw trail between those points.

summat like:

int max_points = 100
vector3 stored_points[max_points];
stored_points[current_point ++] = object.pos;
if (current_point == max_points) current_point = 0;

also track the number of points stored so far, then just draw the trail using the stored points - longer trail? just add more points to array. points cycle around so oldest point gets recycled as long as the object keeps adding more points etc simples :)
 

GulAtiCa

Member
My learning of Unity is going well so far, I think. Currently understand enough of the editor currently as well as picking up how things work in code. I kind of have an idea of a 2D side-scroller game I want to make. (Inspired by my avatar, Emilie Autumn). But for now, I will build a simple VVVVVV like gravity platform game to get more experience.
 

Anustart

Member
store the position of the object each frame in a cyclical buffer - draw trail between those points.

summat like:

int max_points = 100
vector3 stored_points[max_points];
stored_points[current_point ++] = object.pos;
if (current_point == max_points) current_point = 0;

also track the number of points stored so far, then just draw the trail using the stored points - longer trail? just add more points to array. points cycle around so oldest point gets recycled as long as the object keeps adding more points etc simples :)

That is simple! Thanks :)
 
Status
Not open for further replies.
Top Bottom