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

Turfster

Member
That happens to me, too. But the lungs are difficult to read. Shadow of Colossus had that circle thing that was symbolic of nothing but eventually you figured it out. Maybe an arm flexing its bicep would work? Or maybe a little stick man flexing his muscles. You could have it fill up like a diablo health flask, or actually have the muscles be little cartoon arcs that go up at full stamina and droop down at low stamina.
I'd make the lungs full, pumping red and slowly when everything is okay and make them smaller and more blue-tinted, pumping furiously when stamina is empty... but it's your game ;)

Over the past two weeks I slowly optimized a method that took 3 seconds down to 150ms. This was a big improvement but still too slow because it crashed the framerate. I had a major breakthrough yesterday thanks to advice from the Unity IRC channel and got it down to basically instant, so I'm locked at 60 again! This is one of my proudest moments as a programmer. :)

It's a great feeling... Altho it usually involves a lot of "wait, why the hell did I do it *that* way in the first place when *this* way is so much more logical" in my case ;)
 

Five

Banned
I'd make the lungs full, pumping red and slowly when everything is okay and make them smaller and more blue-tinted, pumping furiously when stamina is empty... but it's your game ;)

That's along the lines of what I was originally thinking, but then I thought it'd be too much work to sync everything up properly. The idle animation has notable chest movement from breathing, so I'd want that to match. Plus people inhale and exhale arbitrarily sometimes, or hold their breath during certain actions. Inhaling during a pre-attack windup, exhaling during the follow-through. Holding breath while underwater. Maybe I should just treat this as an air-in-lungs meter instead of a traditional stamina thing.
 

Turfster

Member
That's along the lines of what I was originally thinking, but then I thought it'd be too much work to sync everything up properly. The idle animation has notable chest movement from breathing, so I'd want that to match. Plus people inhale and exhale arbitrarily sometimes, or hold their breath during certain actions. Inhaling during a pre-attack windup, exhaling during the follow-through. Holding breath while underwater. Maybe I should just treat this as an air-in-lungs meter instead of a traditional stamina thing.

The faster you breathe, the less your chest moves, so there wouldn't have to be a 1:1 link between the two animations. Just saying. Anyway, I'll stop backseat developing now ;)
 

Five

Banned
The faster you breathe, the less your chest moves, so there wouldn't have to be a 1:1 link between the two animations. Just saying. Anyway, I'll stop backseat developing now ;)

Yeah, that's true. I'll think about it some more and figure something out. Thanks again! :)
 

AxiomVerge

Neo Member
That's along the lines of what I was originally thinking, but then I thought it'd be too much work to sync everything up properly. The idle animation has notable chest movement from breathing, so I'd want that to match. Plus people inhale and exhale arbitrarily sometimes, or hold their breath during certain actions. Inhaling during a pre-attack windup, exhaling during the follow-through. Holding breath while underwater. Maybe I should just treat this as an air-in-lungs meter instead of a traditional stamina thing.

It could even be totally abstract . . . a pulsating dot, a crazy symbol that animates differently at different stamina . . .
 
Wooh! Finally got over a huge animation problem I was having. Once this gets fully integrated and code is functioning for a default base player (that I can then clone and modify) I can start making the three other characters!
 

Five

Banned
It could even be totally abstract . . . a pulsating dot, a crazy symbol that animates differently at different stamina . . .

Hmm. You just opened up the floodgates to a host of ideas. It's good, though. I think I'll be able to do something creative and relatively unique in the end.

Wooh! Finally got over a huge animation problem I was having. Once this gets fully integrated and code is functioning for a default base player (that I can then clone and modify) I can start making the three other characters!

Congrats! :)
 

Turfster

Member
Sometimes I wish physics was something that just 'worked'. (And while I'm at it, I'd also want a unicorn that flies on rainbows)
The amount of crazy padding you have to do to your small objects to get it to work is kinda disheartening. It's easy to make a floor or wall thicker, but the damn things still fall "into" it if you don't pad an exorbitant amount, and then of course they just seem to float above the surface. Curse you, maths!
 

Dynamite Shikoku

Congratulations, you really deserve it!
Sometimes I wish physics was something that just 'worked'. (And while I'm at it, I'd also want a unicorn that flies on rainbows)
The amount of crazy padding you have to do to your small objects to get it to work is kinda disheartening. It's easy to make a floor or wall thicker, but the damn things still fall "into" it if you don't pad an exorbitant amount, and then of course they just seem to float above the surface. Curse you, maths!

Have you played around with the timestep?
 

Turfster

Member
Have you played around with the timestep?

I have, but I don't want to pump every cycle into physics at this stage of the project.
I'll try to see how much I have left at the end, when I've finished the AI.
If nothing else, the smaller objects will just not be 'loose' for picking up and throwing around ;)
 

missile

Member
Over the past two weeks I slowly optimized a method that took 3 seconds down to 150ms. This was a big improvement but still too slow because it crashed the framerate. I had a major breakthrough yesterday thanks to advice from the Unity IRC channel and got it down to basically instant, so I'm locked at 60 again! This is one of my proudest moments as a programmer. :)
And I replaced randomsort with quicksort!
Details, please! ;)
 

Ashodin

Member
You get introduced to who you fight before you fight. Yup

K6QO9gc.gif


Damn no anti-aliasing at low rez gifs
 

Popstar

Member
We've just put up a Mac version of SCREENCHEAT. We haven't been able to test it with any 360 controllers yet (only tested PS3 controllers), so if anybody's able to test it on Mac we'd be super grateful!

Here's the link again:
http://gamejolt.com/games/shooter/screencheat/22428/

Thanks!

I downloaded the game and tried to play it, but couldn't get a match. However, the 360 controller buttons seemed to work fine.

I also tried it out and got the same result with a 360 controller. Buttons and bumpers worked but didn't get into a match.

It didn't work with any other controllers I tried however. I tried a 360 SFIV fight pad, a Wii classic controller pro w/Mayflash adapter, USB Sega Saturn pad and a USB Neo-Geo controller.
 

Makai

Member
Details, please! ;)
Sure! This may run a little long, though. So my game involves a geodesic sphere dual (hexagon and pentagon tiles). Note: not like my avatar. I'm not ready to join Screenshot Saturday, but if anyone wants a look, I'm happy to send a screenshot in confidence via PM. Each tile is layered and players can add or remove layers. Each layer is one of several types, such as dirt or sand. There are hundreds of tiles and each tile can have several layers, so it would be taxing to render each layer as a separate mesh. Layers of the same type share the same render material, so instead I store every layer of the same type in a single mesh. Because players can add or remove layers, the meshes have to be modified at runtime. Unfortunately, the method that did this was super slow. At 2700ms, I was way over the 16ms maximum for 60fps.

STEP 0 - Status Quo
It was even more inefficient than this in the past, but that was before I had Unity Pro (thanks, Nintendo =] ). Once I figured out how to use the profiler, I was able to identify potential areas of improvement.
Time: 2700ms

STEP 1 - Removing Redundancy
To calculate the vertices for a layer, I need the vertices of the tile on the surface of the geodesic sphere. The vertices of a tile are used several times during mesh generation. I was using a function call for this, so the vertices were being calculated multiple times. I improved upon this by storing the vertices in a variable so I could retrieve them without recalculating.
Time: 300ms

STEP 2 - Increased Rendering Overhead
Each layer in a hexagon tile consists of a hexagon for the top and rectangles on each side. The bottom layer in a tile does not have sides because they will always be invisible. The top layer in a tile is the only layer whose top is rendered, because the tops of the other layers are concealed. Pentagons are special tiles that cannot have layers added to them, so they are only rendered with a single Pentagon. With this setup, I had to recreate all of the meshes whenever a layer was added or removed. By including the tops of concealed layers when creating meshes, I only needed to update the mesh containing layers of the same type as the layer that was just added or removed. I thought this would increase the rendering time, but I was still under 1ms for rendering time, so it was no sweat. The culler probably takes care of them anyway.
Time: 200ms

STEP 3 - Reduced Mesh Count
I lied. I actually had two meshes per layer type. One for the hexagons on tops of layers and one for the rectangles on the sides. I also had one mesh for the pentagon tiles. The reason for this is it let me generate the UVs for the entire mesh at once. I changed this to one mesh per layer type. This reduced the number of draw calls by 2, but seemed to have no impact on performance at all. The UVs for the sides got really messed up as a result of this, but hey, I can fix that later. My code ended up a lot cleaner so I kept it.
Time: 200ms

STEP 4 - Time Slicing
It had gotten pretty fast since the last step. 200ms is quick enough to feel responsive to the player. The problem was that the framerate crashed in this moment. So why not divide the task up over several frames? I used coroutines to handle this. I could spread out the mesh generation over as many frames as required. Unfortunately, there was another 150ms that could not be time sliced.
Time: 150ms

STEP 5 - Many Mesh Colliders
Some of you may be wondering why I am generating meshes instead of using prefabs. Although they look regular, the tiles of a geodesic sphere are irregular, so mesh generation is necessary. For the same reason, I must use mesh colliders for tile selection. I generated one giant mesh collider that encompassed the entire geodesic sphere and its layers. I raycast from the mouse into the collider and used the index of the hit triangle to determine the tile. I had to recreate this mesh whenever I added or removed a tile. Generating the mesh was quick, but afterwards the collider automatically triggered "physX rebake" so it could use the updated geometry. This procedure was responsible for nearly all of the 150ms. This was an internal Unity feature, so I could not time slice it. The solution was to just make a mesh collider for every tile. This way it only had to rebake the physX for a small mesh. I figured that having hundreds of mesh colliders in the scene would make rendering slow, but it was fine. Actually, it made the editor playback view really choppy, but this choppiness was not present in builds. The time for adding/removing a layer was now negligible.
Time: Instant (Okay, the time isn't 0.00ms, but I haven't bothered to calculate it because the game is steady 300+fps on my four-year-old laptop. It happens QUICKLY.)

STEP 6 - Deep Refactoring
I spent several hours refactoring the way I store tiles. Before, I stored tiles as integers, and used their indices in function calls to get their properties. I went ahead and gave them their own class and stored them as Tile objects, with the properties stored inside. This made my code a lot cleaner but didn't increase performance of the game. As a side effect, this somehow got the editor view to a normal framerate. Not sure how that happened.
Time: Still Instant
 

Blizzard

Banned
Nice work ActionRemix, and great job making notes and quantifiable measurements in the process. A scientific approach for optimizing is great. :D

I had a stupid moment tonight messing with my 2D engine on PC. I wanted some labels aligned, so I put a style on them when I created them. But then it didn't work! The labels were still centered! Woe is me, there must be a bug since I never really use non-centered labels in normal testing!

It turns out I applied the style to the wrong labels, and the style stuff itself was working perfectly. >_> I should have trusted my own work I guess!
 

Turfster

Member
Very interesting writeup, ActionRemix.
Most of my code is also still on the fly mesh generation/recalculation.
I don't... like... the whole prefab thing, and the rather heavy penalty it seems to entail when instantiating. Yes, you can offload it with an object pool, but you'll still have that penalty at the start then)

It was even more inefficient than this in the past, but that was before I had Unity Pro (thanks, Nintendo =] ).

About this. I've been thinking of signing up as a WiiU developer, because we have a few game ideas floating around that could work well on the platform. Unfortunately, we don't actually have anything released yet. How much do they care about the "name an application developed on a selected platform above", or did the people that signed up and hadn't released anything yet just not select anything for platforms and leave it blank?

(I know the answer to this is probably buried somewhere in the thread, but the GAF Search isn't really conductive to trying to find it)
 

Makai

Member
About this. I've been thinking of signing up as a WiiU developer, because we have a few game ideas floating around that could work well on the platform. Unfortunately, we don't actually have anything released yet. How much do they care about the "name an application developed on a selected platform above", or did the people that signed up and hadn't released anything yet just not select anything for platforms and leave it blank?

(I know the answer to this is probably buried somewhere in the thread, but the GAF Search isn't really conductive to trying to find it)
For experience, I put "New to development." I think I left the platforms unchecked.
 

Kritz

Banned
I gotta ask, because I'm super proud of this implementation, but feel really guilty about it.

I'm making a game that is multiplayer, with a heavy amount of physics objects, in Unity3D. Here's one of the dumb videos I made while bug testing a month ago, for reference to the kinda dumb shit I'm doing. I've had a problem across the past few days redeveloping how I sync objects across a network. Usually, I just had a networkView attached to a RigidBody, and called it a day. Problem is, with no interpolation, that shit is real jittery depending on network latency between the server and clients.

So, I went looking for how to do interpolation across networks. I straight up copy pasted a few different things, from either the unity wiki or from unity's own networking tutorial, and found each result suffered from either extreme jitter (worse than before), or a noticeable 0.2 - 1 second delay on all physics. Today, three days after trying to fix this shit up, I just said fuck it and started looking at ways to put in the minimal amount of effort to sync objects in a way that's just playable. Doesn't have to be great, doesn't have to be smooth, just has to be playable and not majorly distracting.

My solution is to only sync object positions with the server under the following conditions:

  • the object is more than 10 units away from the player
  • the object is not visible

I gotta say, this seems like the absolute worst way to go about it, but I've been testing it for a few hours, and none of the players have actually noticed it happening, or that the objects are in the wrong positions. I'll likely tune it a little bit, so that it'll also accept a sync if the object moves too far away from the server position (like 0.5 units or something), or give some objects a sync priority, objects which are more important to be in the correct position for all players like burgers that are in production, stuff like that.

Has anyone else had to deal with syncing positions in a networked unity game? There must be a better way, but I'm still kinda proud of my guilty, lazy fix to this problem.

Until the players notice and then it might all go south.
 

Turfster

Member
I gotta ask, because I'm super proud of this implementation, but feel really guilty about it.

I'm making a game that is multiplayer, with a heavy amount of physics objects, in Unity3D.

Syncing physics across the network with latency is notoriously hard, since nothing tells you the physics calculations are running at the same speed/time.
Your best bet is to make one player be the server, running all the physics calculations and just sending position/rotation updates to the 'clients', letting them interpolate based on how long it's been since the last full information frame they got if it's longer than synctime.
(Or something close to that anyway. I've been up for way too long.)
 

missile

Member
Sure! This may run a little long, though. So my game involves a geodesic sphere dual (hexagon and pentagon tiles). Note: not like my avatar. I'm not ready to join Screenshot Saturday, but if anyone wants a look, I'm happy to send a screenshot in confidence via PM. Each tile is layered and players can add or remove layers. Each layer is one of several types, such as dirt or sand. There are hundreds of tiles and each tile can have several layers, so it would be taxing to render each layer as a separate mesh. Layers of the same type share the same render material, so instead I store every layer of the same type in a single mesh. Because players can add or remove layers, the meshes have to be modified at runtime. Unfortunately, the method that did this was super slow. At 2700ms, I was way over the 16ms maximum for 60fps.

STEP 0 - Status Quo
It was even more inefficient than this in the past, but that was before I had Unity Pro (thanks, Nintendo =] ). Once I figured out how to use the profiler, I was able to identify potential areas of improvement.
Time: 2700ms

STEP 1 - Removing Redundancy
To calculate the vertices for a layer, I need the vertices of the tile on the surface of the geodesic sphere. The vertices of a tile are used several times during mesh generation. I was using a function call for this, so the vertices were being calculated multiple times. I improved upon this by storing the vertices in a variable so I could retrieve them without recalculating.
Time: 300ms

STEP 2 - Increased Rendering Overhead
Each layer in a hexagon tile consists of a hexagon for the top and rectangles on each side. The bottom layer in a tile does not have sides because they will always be invisible. The top layer in a tile is the only layer whose top is rendered, because the tops of the other layers are concealed. Pentagons are special tiles that cannot have layers added to them, so they are only rendered with a single Pentagon. With this setup, I had to recreate all of the meshes whenever a layer was added or removed. By including the tops of concealed layers when creating meshes, I only needed to update the mesh containing layers of the same type as the layer that was just added or removed. I thought this would increase the rendering time, but I was still under 1ms for rendering time, so it was no sweat. The culler probably takes care of them anyway.
Time: 200ms

STEP 3 - Reduced Mesh Count
I lied. I actually had two meshes per layer type. One for the hexagons on tops of layers and one for the rectangles on the sides. I also had one mesh for the pentagon tiles. The reason for this is it let me generate the UVs for the entire mesh at once. I changed this to one mesh per layer type. This reduced the number of draw calls by 2, but seemed to have no impact on performance at all. The UVs for the sides got really messed up as a result of this, but hey, I can fix that later. My code ended up a lot cleaner so I kept it.
Time: 200ms

STEP 4 - Time Slicing
It had gotten pretty fast since the last step. 200ms is quick enough to feel responsive to the player. The problem was that the framerate crashed in this moment. So why not divide the task up over several frames? I used coroutines to handle this. I could spread out the mesh generation over as many frames as required. Unfortunately, there was another 150ms that could not be time sliced.
Time: 150ms

STEP 5 - Many Mesh Colliders
Some of you may be wondering why I am generating meshes instead of using prefabs. Although they look regular, the tiles of a geodesic sphere are irregular, so mesh generation is necessary. For the same reason, I must use mesh colliders for tile selection. I generated one giant mesh collider that encompassed the entire geodesic sphere and its layers. I raycast from the mouse into the collider and used the index of the hit triangle to determine the tile. I had to recreate this mesh whenever I added or removed a tile. Generating the mesh was quick, but afterwards the collider automatically triggered "physX rebake" so it could use the updated geometry. This procedure was responsible for nearly all of the 150ms. This was an internal Unity feature, so I could not time slice it. The solution was to just make a mesh collider for every tile. This way it only had to rebake the physX for a small mesh. I figured that having hundreds of mesh colliders in the scene would make rendering slow, but it was fine. Actually, it made the editor playback view really choppy, but this choppiness was not present in builds. The time for adding/removing a layer was now negligible.
Time: Instant (Okay, the time isn't 0.00ms, but I haven't bothered to calculate it because the game is steady 300+fps on my four-year-old laptop. It happens QUICKLY.)

STEP 6 - Deep Refactoring
I spent several hours refactoring the way I store tiles. Before, I stored tiles as integers, and used their indices in function calls to get their properties. I went ahead and gave them their own class and stored them as Tile objects, with the properties stored inside. This made my code a lot cleaner but didn't increase performance of the game. As a side effect, this somehow got the editor view to a normal framerate. Not sure how that happened.
Time: Still Instant

Thanks for taking the time, I very much enjoyed reading it! It gives me a
better understanding of your game and the issues involved. Would be cool if
other devs in here could write similar things about their games more often.
However. Btw; Will the sphere deform during gameplay, for example by letting
some waves running around it or having some global oscillations? Just a thought.
 

Makai

Member
Thanks for taking the time, I very much enjoyed reading it! It gives me a better understanding of your game and the issues involved. Would be cool if
other devs in here could write similar things about their games more often.
However. Btw; Will the sphere deform during gameplay, for example by letting
some waves running around it or having some global oscillations? Just a thought.
I might be misinterpreting your question: The sphere does not deform. It is a turn based strategy game, so the topography has to be somewhat predictable. The only change is layers can be added or removed. I do plan for layers to be added or removed automatically under certain circumstances, however. For example, I plan for water "layers" to fill valleys formed by solid layers. A player could send a unit to remove a rock layer that was acting as a natural dam, turning a nearby valley into a river and drowning the units that were standing in the former valley. I suppose I could include some camera effects that would distort the player's view of the sphere, but I haven't thought about it.
 

Kritz

Banned
Syncing physics across the network with latency is notoriously hard, since nothing tells you the physics calculations are running at the same speed/time.
Your best bet is to make one player be the server, running all the physics calculations and just sending position/rotation updates to the 'clients', letting them interpolate based on how long it's been since the last full information frame they got if it's longer than synctime.
(Or something close to that anyway. I've been up for way too long.)

Yeah, tried a lot of that.

I'll bounce back and forth between implementations across the upcoming months, see what works best, and what I can get away with.

I've been spending every waking hour of the past week on this stupid game trying to get a moderately stable build up. So at this point I'm just going for whatever looks correct for the players, and hiding the nasty stuff under the carpet.
 

Jobbs

Banned
I posted this image in my last KS update.


While the map was redone from square one (along with everything else) it's still based on the same overall layout and has some common areas. This is what this area looked like in the original pre-KS game.

Some people liked the red look of the rocks in the game before, and that's okay, but part of the redesign meant coming up with a more consolidated design, and a green surface/near surface is sorta the order of the day now.

As I also mentioned in the update, I'm slowly working on redoing the website so that it's not hideous and useless. :D I checked the stats the other day and didn't realize I was getting any traffic, but I kinda am. More than I thought. And they're visiting a turd.

This'll go along with the new video walkthrough revealing the game. I hope to have all this done by the time Dark Souls 2 comes out, so I can take a break for a few days and focus on what's really important.

Any thoughts on what you would do? Is either a heart or lungs better at representing stamina? Should I just stick to a normal stamina bar? If this is too unconventional, it's probably not worth the confusion it will generate.

First of all, the animation in your gifs looks great. I like how smooth everything moves.

To the heart of the matter, though, I actually don't like the lungs graphic. I think you should try and come up with something typically abstract, something along the lines of a stamina bar, but if that bothers you for some reason, repackage it in a creative shape. Maybe a ying and yang type fixture for health and stamina. Twist them together somehow into one cool graphic.
 

Five

Banned
First of all, the animation in your gifs looks great. I like how smooth everything moves.

To the heart of the matter, though, I actually don't like the lungs graphic. I think you should try and come up with something typically abstract, something along the lines of a stamina bar, but if that bothers you for some reason, repackage it in a creative shape. Maybe a ying and yang type fixture for health and stamina. Twist them together somehow into one cool graphic.

Thanks!

Yeah, the lung graphic was lousy. I only spend three minutes on it just to get a basic concept across. I spent more time on a better-looking version today:

ribcageDemo1.gif
 

XHPrime

Member
My brother-in-law and I made a shmup game that adds in rpg, loot, and roguelike mechanics. We posted it to Greenlight a few days ago. What do you guys think?

hLJ2ocg.png

i2dEj7NGVCAr5.gif

icb1DAF7EkU0J.gif

i7XJRBeV8QzvV.gif


We created an image that explains it more but it would make the post way too long. So heres a link to that.

http://i.imgur.com/cJCWkMG.jpg
 

Blizzard

Banned
I learned about something non-obvious in C/C++ yesterday. As far as I'm aware, it's standard behavior and works in C/C++ compilers.

char x = 2["Test"];

The result is that x is equal to 's'.

This is apparently because array indexing like this is treated as follows:
pointer[2] == *(pointer + 2) == *(2 + pointer) == 2[pointer]

Using string literals makes it even more confusing-looking, so:
"Test"[2] == 2["Test"]

I like it because some people like myself might internalize the idea of array indexing as "This thing is an offset into this other thing", when the reality is presumably just pointer math to produce a result address, which is then dereferenced.
 

Five

Banned
I'm liking this.

Thanks! :)


Hey guys, I just released the first public alpha for Another Castle, including a free web version. You can check it out at http://www.AnotherCastleTheGame.com and let me know what you think!

Also, here's a baby fire dragon :)

9XNComl.gif

This looks really cool. Though, the character flip effect is a little jarring for me. It's the only thing that makes stuff look flat, at least as far as this GIF shows. If other stuff comes across as flat, I don't think it'd be a problem, though.


My brother-in-law and I made a shmup game that adds in rpg, loot, and roguelike mechanics. We posted it to Greenlight a few days ago. What do you guys think?

hLJ2ocg.png

I'd be lying if I said I was a fan of ship-based shmups, but this looks like a good game for people who are fans. Good luck!
 

Five

Banned
I don't know man, I think the character flip effect adds a "paper mario" charm to it.


Looks neat!
Thanks. Yeah, I don't think it's a bad effect, just one that should only be used when you're trying to sell the "flat things in a 3D space" effect, which Paper Mario clearly is meant to be. From this snippet, it looks like the characters are the only explicitly flat thing in the game which, without a handy explanation like "it's paper", begs the question of why?
 
Thanks. Yeah, I don't think it's a bad effect, just one that should only be used when you're trying to sell the "flat things in a 3D space" effect, which Paper Mario clearly is meant to be. From this snippet, it looks like the characters are the only explicitly flat thing in the game which, without a handy explanation like "it's paper", begs the question of why?

I think you definitely have a fair point. Although I like the flipping and am keeping it in the game, it would make a lot of sense to have some game mechanics or other artwork that uses the same flat 2d effect. Not sure what that could be yet, though.
 

Five

Banned
I think you definitely have a fair point. Although I like the flipping and am keeping it in the game, it would make a lot of sense to have some game mechanics or other artwork that uses the same flat 2d effect. Not sure what that could be yet, though.

That's basically what I meant, yeah. Based off of how good the game looks overall so far, I'm sure you'll be able to figure something out! :)
 

razu

Member
I learned about something non-obvious in C/C++ yesterday. As far as I'm aware, it's standard behavior and works in C/C++ compilers.

char x = 2["Test"];

The result is that x is equal to 's'.

This is apparently because array indexing like this is treated as follows:
pointer[2] == *(pointer + 2) == *(2 + pointer) == 2[pointer]

Using string literals makes it even more confusing-looking, so:
"Test"[2] == 2["Test"]

I like it because some people like myself might internalize the idea of array indexing as "This thing is an offset into this other thing", when the reality is presumably just pointer math to produce a result address, which is then dereferenced.

That is the freakiest shit I've seen in a while!!

SO has a thread on it: http://stackoverflow.com/questions/381542/with-c-arrays-why-is-it-the-case-that-a5-5a



What is the cheapest and easiest program to make a simplistic game to publish on iOS and Android?

XCode is free. Android dev environment is free. So they are the cheapest!

Easiest? Making games is never easy :D
 

-Winnie-

Member
I also tried it out and got the same result with a 360 controller. Buttons and bumpers worked but didn't get into a match.

It didn't work with any other controllers I tried however. I tried a 360 SFIV fight pad, a Wii classic controller pro w/Mayflash adapter, USB Sega Saturn pad and a USB Neo-Geo controller.

Oh man, I guess we didn't really make it clear, but the game is currently local multiplayer only. :(
Online play is definitely something we're hoping to add in future though!

Thanks for testing out those other controllers though, we'll look into it.
 

omg_mjd

Member
There is nothing like Gamemaker that comes with Android and iOS exporting for cheap?

Construct 2. It's on Steam for $119 but there's also a free version.

It outputs an HTML5 game that runs on modern browsers and there's support for exporters to a number of platforms, including Android and iOS. There are some limitations though (the iOS and Android exporters are currently third-party and rely on cloud-based compilation instead of being exported straight out of Construct 2 itself.)
 
Status
Not open for further replies.
Top Bottom