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

Feep

Banned
Gnnnnn...
Just lost 2 hours trying to debug a totally impossible bug (logger call failing where exactly the same logger call in the other part of an if block that was used 100 times before didn't)
Apparently, code put in a constructor for a monobehavior gets called twice, which usually isn't a problem, unless you're registering your class with a messenger and passing a delegate function to it, and the messenger calls the 'dead' instance too...
I'm pretty sure you're NEVER supposed to use a constructor for a class derived from MonoBehavior. All setup needs to go in Start().
 

Turfster

Member
I'm pretty sure you're NEVER supposed to use a constructor for a class derived from MonoBehavior. All setup needs to go in Start().
This was an old class I was moving over, but yeah, I'm never going to make this mistake again. It would have been nice if they'd said something though, something along the lines of "Uh, please use Start()". They throw enough other warnings if you do things the 'wrong' way.
 

motorsep

Neo Member
Added weather and fake cloth sim to upcoming DLC for Steel Storm:

ss1_dlc2_map2_wip.gif


YouTube: http://www.youtube.com/watch?v=5zrDD396SK4&hd=1
 
Guys would you all be against me if I locked my game on iOS to iphone 5/5s/5c only? I am really torn on how my game is running and I have so many ideas I can continue with.

Advantages: balls deep graphics and effect improvements, no need to gimp anything for older devices for now, better enemy AI and more on screen. 60FPS

Disadvantages: limited to only modern iOS (until fusion 3 is released, but then I would just make the sequel) and no iPhone 4 and 4s support.

Might be able to get iPad 3 and 4 in there, maybe.

I still plan a PC release and it will of course look like the iphone 5 build, I also might be able to get iphone 4's in there if I lower frame rates to 30 but it also means I have to go redo a lot of movement math.
 

Hinomura

Member
Ok Gaf.

Scraped off everything and started again from scratch studying this: http://www.apress.com/9781430209799 (Building XNA Games by James Silva and John Sedlak).

Had a working "tech" demo with starfield, sin scroller, autosized windowed mode / selectable window multiplier (for results lower than screen res, even considering portrait monitors) or fullscreen (2x), scanlines on/off 25-50-75-100% (auto thickness according to zoom), spritefonts, spritesheet, music player, timed events, pause mode, etc but I felt really stupid about too many basic things.

As I felt stupid, asking the web was not the best solution since even the most "stupid" question gave me at least five / six answers which nullified each other, saying anything and the opposite of anything.

As I felt stupid, I've even annoyed a fellow gaffer via pm (sorry!!!) :/

I feel even more stupid considering a few years ago, games were entirely coded to the metal (assembly, not high level language with frameworks / middlewares / engines). Oh well, those were programming heroes.

So, I hope I'll tell about my efforts again when it'll be justified to.
 

Hinomura

Member
Guys would you all be against me if I locked my game on iOS to iphone 5/5s/5c only? I am really torn on how my game is running and I have so many ideas I can continue with.

Advantages: balls deep graphics and effect improvements, no need to gimp anything for older devices for now, better enemy AI and more on screen. 60FPS

Disadvantages: limited to only modern iOS (until fusion 3 is released, but then I would just make the sequel) and no iPhone 4 and 4s support.

Might be able to get iPad 3 and 4 in there, maybe.

I still plan a PC release and it will of course look like the iphone 5 build, I also might be able to get iphone 4's in there if I lower frame rates to 30 but it also means I have to go redo a lot of movement math.
Imho release on iphone 5 first, and consider lower specs later (I've no iphone).
 

Hinomura

Member
Using XNA now is a mistake. Unity is a much better choice if you're just starting.

Thanks for replying!

Since I'm doing a 2d shoot'em up I thought XNA would be the best option. I know it's no longer supported by MS, but a XNA game should work anyway.

Or is there anything else I should know? Like it won't be possible anymore to compile XNA games (I'm currently using VSE 2012 after the "trick" to make XNA work)?

Edit: my goal is to release the game PC only
 

Bamihap

Good at being the bigger man
Guys would you all be against me if I locked my game on iOS to iphone 5/5s/5c only? I am really torn on how my game is running and I have so many ideas I can continue with.

Advantages: balls deep graphics and effect improvements, no need to gimp anything for older devices for now, better enemy AI and more on screen. 60FPS

Disadvantages: limited to only modern iOS (until fusion 3 is released, but then I would just make the sequel) and no iPhone 4 and 4s support.

Might be able to get iPad 3 and 4 in there, maybe.

I still plan a PC release and it will of course look like the iphone 5 build, I also might be able to get iphone 4's in there if I lower frame rates to 30 but it also means I have to go redo a lot of movement math.
We released our first game for iPad 2+ and iphone 4s+ only. It DESTROYED the sales of the game. Try to support as many devices as you can.
 

Anustart

Member
What's the best way to store large amounts of persistent data I will be using in a game in Unity? I'll have thousands of records that I'll need access to.

Will an xml file be suitable for 3,000 or so entries? Because I could create that quite easily.
 
Thanks for replying!

Since I'm doing a 2d shoot'em up I thought XNA would be the best option. I know it's no longer supported by MS, but a XNA game should work anyway.

Or is there anything else I should know? Like it won't be possible anymore to compile XNA games (I'm currently using VSE 2012 after the "trick" to make XNA work)?

Edit: my goal is to release the game PC only

well if you use XNA you can also use MONO later, so it not all for nothing, still is viable option I think. I am developing on XNA still and waiting to see what's next...
 

Hinomura

Member
well if you use XNA you can also use MONO later, so it not all for nothing, still is viable option I think. I am developing on XNA still and waiting to see what's next...

Thanks!

I was a bit worried since I read about Unity not being very "friendly" to 2d game development (ok, they're implementing the 2d "part" finally, but I fear it won't be perfectly viable/usable for a long time).
 

F-Pina

Member
Aw man. That's a really charming art style you got there! The cars work great without being (too much) distracting at all. No plans for parallax backgrounds though? ;)

You could have people on the street in a monotone-ish style. Not greyscale, but close to a single colour. It should give the player a better idea of who can't be interact with. And people who can be interact with will stand out much better due to their wider array of colours. But I'm sure this was one of your initial ideas anyway... heh.

Do you have After Effects? You can import Premiere sequences (projects, even) into an After Effects composition. Set its quality to draft and then render the composition at 'draft quality'. This will remove any sampling for scaled footage! Otherwise, no idea how to do it in Premiere. :(

Looking forward to seeing more!

Ok, thanks for the help Metal-Geo but I managed to get around the bilinear filters that every program puts on your images or gifs when you enlarge them. Premiere applies them the minute you change the image size automatically so I would either create a small resolution project (in my game case, 256x192) or I would trick it into accepting small images as big ones. Going into After Effects as suggested was not necessary.

Currently I have my trailer at 720p using the original images without any changes. I had to export all the gifs I was using for the trailer again but this time I enlarged everything x4 with no filter (nearest neighbour). Photoshop went crazy off course, some gifs became very big and I ran out of memory several times. But it worked.

Our first trailer that will go live in 3 days will be entirely made out of pixel art from the game, animated into gifs on Photoshop and edited on Premiere. Even the phrases and logos are pixel art :)
 

DSix

Banned
Thanks for replying!

Since I'm doing a 2d shoot'em up I thought XNA would be the best option. I know it's no longer supported by MS, but a XNA game should work anyway.

Or is there anything else I should know? Like it won't be possible anymore to compile XNA games (I'm currently using VSE 2012 after the "trick" to make XNA work)?

Edit: my goal is to release the game PC only

See it that way: what the Unity 2D Beta offers right now is already more than what the very basic XNA functions do.
 

Metal-Geo

Member
Ok, thanks for the help Metal-Geo but I managed to get around the bilinear filters that every program puts on your images or gifs when you enlarge them. Premiere applies them the minute you change the image size automatically so I would either create a small resolution project (in my game case, 256x192) or I would trick it into accepting small images as big ones. Going into After Effects as suggested was not necessary.

Currently I have my trailer at 720p using the original images without any changes. I had to export all the gifs I was using for the trailer again but this time I enlarged everything x4 with no filter (nearest neighbour). Photoshop went crazy off course, some gifs became very big and I ran out of memory several times. But it worked.

Our first trailer that will go live in 3 days will be entirely made out of pixel art from the game, animated into gifs on Photoshop and edited on Premiere. Even the phrases and logos are pixel art :)
Haha. Fair enough if it works. Looking forward to the footage!
 

Kyuur

Member
Anyone have a problem where they redo their code way too much? I spend far too much time on simple scripts trying to maximize efficiency in it's structure, and rewriting code for readability and such.

It helps in the long run (I end up with very reusable and well documented code) but it feels like I get no where in the overall scheme of things.
 

Anustart

Member
Anyone have a problem where they redo their code way too much? I spend far too much time on simple scripts trying to maximize efficiency in it's structure, and rewriting code for readability and such.

It helps in the long run (I end up with very reusable and well documented code) but it feels like I get no where in the overall scheme of things.

For a university project I was asked by my professor to fine tune a game I made for presentation during a community day. I spent forever restructuring my scripts...

It became an obsession.
 

Anustart

Member
Is there an ETA on Unity 2d support? I'm needing to get to work and I don't know if I should grab something like 2d ToolKit or wait for Unity to update...

Also, anyone using any thing off the asset store that helps a ton? I'm probably going to need some tools somewhere down the line and wouldn't mind seeing some suggestions.
 

DSix

Banned
How did you get into the beta?

I didn't. By speaking to people who did, I thought it was already out there publicly. But I just saw it isn't. My bad -_-

I guess I got a bit too hyped there. But I'm an XNA user, so I know how the lack of a proper level-editor and ready-made engine can be a pain in the ass when you start out. Oh well... nevermind me and go for whatever you think is right. At least Unity 2d might be worth a try once it's released (and there's still 2dtoolkit).
 

Anustart

Member
Yes. Unity 2D is coming, I guess, but I don't know when...

That confirming that 2d Tool Kit is a good purchase? (Disregarding Unity 2d coming in 4.3) I wouldn't mind dropping the 65$ on 2dTK if it's worth it to me.

I could wait on actually doing any editor work I guess, but who knows when 4.3 is dropping and how much functionality it will have out of the box.
 

Feep

Banned
That confirming that 2d Tool Kit is a good purchase? (Disregarding Unity 2d coming in 4.3) I wouldn't mind dropping the 65$ on 2dTK if it's worth it to me.

I could wait on actually doing any editor work I guess, but who knows when 4.3 is dropping and how much functionality it will have out of the box.
Yup. I use it in my own project.
 

Anustart

Member
With my game idea I'm purposefully avoiding looking to see if any game has done it before as I don't want to start stealing ideas subconsciously.

I feel as though I haven't heard of a game that's done what I'm attempting, so I'm hoping that I can pull it off and please....someone.
 

Five

Banned
With my game idea I'm purposefully avoiding looking to see if any game has done it before as I don't want to start stealing ideas subconsciously.

I feel as though I haven't heard of a game that's done what I'm attempting, so I'm hoping that I can pull it off and please....someone.

That's one way of looking at it. I'm trying to take the opposite approach. The game I'm making shares a lot in common with Spelunky and Rogue Legacy, neither of which I'd actually played before starting work on my game. To the extent that my game is the same as those, I'm playing and looking at them to figure out what was good and what can be done better. What parts in the game frustrate me, could be polished further, or should just be avoided?

I'm not necessarily trying to be innovative or make money, though. This is a hobby for me, and I'm more interested in the programming challenges at the moment.

I missed ScreenshotSaturday, but this is a fair representation of what I'm working on:
 

Anustart

Member
That's one way of looking at it. I'm trying to take the opposite approach. The game I'm making shares a lot in common with Spelunky and Rogue Legacy, neither of which I'd actually played before starting work on my game. To the extent that my game is the same as those, I'm playing and looking at them to figure out what was good and what can be done better. What parts in the game frustrate me, could be polished further, or should just be avoided?

I'm not necessarily trying to be innovative or make money, though. This is a hobby for me, and I'm more interested in the programming challenges at the moment.

I missed ScreenshotSaturday, but this is a fair representation of what I'm working on:

I'm wanting to make money off this project, but I'd be lying if I said I'm not doing it because I love coding :3

I love puzzles, and programming is a constant barrage of puzzles.
 

adixon

Member
Supposedly unity native 2d is coming this fall, but toolkit 2d will still have a bunch of features not in the native tools, and it's so actively supported that if there's any efficiency advantage to using the new native 2d tools, the developers will very likely update tk2d to use the them underneath everything.

I'm in the same spot, trying to decide if I want to buy tk2d or wait for the native tools... seems likely to be worth it?
 

Turfster

Member
i have heard that ms totally dropped xna

MS threw XNA out a year ago or so when they made the move to Windows 8/RT and it didn't fit in their master plan anymore. The lesson is: never build your castle on a microsoft foundation, because all too soon, it will be like sand.

What's the best way to store large amounts of persistent data I will be using in a game in Unity? I'll have thousands of records that I'll need access to.

Will an xml file be suitable for 3,000 or so entries? Because I could create that quite easily.
How often do you need to access them? Will you only read them all at once, or do you need to be able to do specific lookups?
Do you only want to load/write them at the start/exit, or do you want to update them at random times?

See it that way: what the Unity 2D Beta offers right now is already more than what the very basic XNA functions do.
I'm mainly hoping they roll out an actual GUI subsystem soon so I can stop coding around the trainwreck they currently have to do basic stuff.
 

Vard

Member
This is what I worry about, looks like I might just have to drop it to a much lower FPS.
Can you make it run at higher FPS if on iPhone 5 but have performance scale down as needed on lower end devices?

If that's not an option, considering the new iPhone is just around the corner, last gen devices (4/4S) are only going to matter less. I'd opt for putting the best experience you can out there now though. If you're thinking long-term, people with 4/4S will likely upgrade at some point and be able to enjoy the (higher performance) game at a later date.
 

Santini

Member
That confirming that 2d Tool Kit is a good purchase? (Disregarding Unity 2d coming in 4.3) I wouldn't mind dropping the 65$ on 2dTK if it's worth it to me.

I could wait on actually doing any editor work I guess, but who knows when 4.3 is dropping and how much functionality it will have out of the box.

Supposedly unity native 2d is coming this fall, but toolkit 2d will still have a bunch of features not in the native tools, and it's so actively supported that if there's any efficiency advantage to using the new native 2d tools, the developers will very likely update tk2d to use the them underneath everything.

I'm in the same spot, trying to decide if I want to buy tk2d or wait for the native tools... seems likely to be worth it?

Apart from how far in the near future 4.3 releases, 2DTK may still be worth picking up if you need good 2D handling now, particularly if you're using Unity Free. If I'm reading this correctly, according to this developer post on the Unity boards, there's going to be at least 1 very useful feature held back for Unity Pro users only.

How useful that feature is depends on your workflow and target platform of choice, but 2DTK (and NGUI as well) support this type of sprite import and subsequent atlas generation out of the box. As much I enjoy making my own atlases in Photoshop (I don't), dragging and dropping 2D art into the project and having the plugin make atlases out of them has saved me a lot of time and headache, particularly if I have to edit the art after the fact.
 

Anustart

Member
How often do you need to access them? Will you only read them all at once, or do you need to be able to do specific lookups?
Do you only want to load/write them at the start/exit, or do you want to update them at random times?

They'll all be read at the start of a new game, then the gameobjects I create from them will be used when in proximity to the player, so there will be specific lookups and editing of them randomly through out a play session.
 

Spierek

Member
Alright, I think it's about time I wrote about it. Introducing



, the world's first first-person time-moves-only-when-you-move shooter*. To explain it simply, it's The Matrix meets Hotline Miami meets a little bit of Braid. You can just stop moving in the middle of the room, look around, see where the enemies are and then decide on the best course of action (which usually involves deciding on which guy you'll shoot first). Take your time, you have as much as you want.

Play SUPERHOT on our website

The game was initially created in Unity during the 7DFPS game jam, and then extra-polished for the WGK 2013 conference, where we snatched the first prize in the Developer Showcase competition. The original version of the game has also been featured on Rock, Paper, Shotgun, IndieStatik and GiantBomb.

If you'd like to know more about where we're headed with the game, submit some feedback (we do love getting feedback from the players) or just ask some questions about the game/Unity, tweet/follow us at @superhotthegame or just drop me an e-mail at spierek@superhotgame.com. Thanks in advance.


*actually, the time moves very, very slowly when you're not moving, but "time-moves-only-slightly-when-you're-not-moving shooter" is not as marketable
 

GulAtiCa

Member
Been doing a lot of Wii U documentation reading lately. Also ordered a dev kit, I hope it comes soon!

I think I mentioned this before, but my first game will be my HTML5 tower defense game, you can see a prototype of it here.

I am currently starting from scratch on a new version in anticipation for my dev kit to get here. Got in the splash screen (though blank lol) and started working on a main menu before I called it quits for the night. Unlike that prototype, I plan to have a few additional things. Like I'm aiming for 4 maps at the least. One of which will be very similar to the above link. I have an idea for 2 more as well (one inside an asteroid and other in hyperspace (this one will mostly have enemies come from behind but occasional dangers ahead too)). The maps will not just be a background change, but actually change your strategy for the area. Also plan to have a Easy mode, and maybe even Super Hard mode. :lol

I also plan to add a few more things, like shield for the main base as an upgradablething to last longer as well as a fighter jet type bot that will go out in the outer edges and fight the enemies before they get too close. Will prob have to re-balance some things with this.

Currently I plan to try to make it playable on the web for as long as I can, so I can get help from people testing it and trying it out. :)
 

Anustart

Member
Been doing a lot of Wii U documentation reading lately. Also ordered a dev kit, I hope it comes soon!

I think I mentioned this before, but my first game will be my HTML5 tower defense game, you can see a prototype of it here.

I am currently starting from scratch on a new version in anticipation for my dev kit to get here. Got in the splash screen (though blank lol) and started working on a main menu before I called it quits for the night. Unlike that prototype, I plan to have a few additional things. Like I'm aiming for 4 maps at the least. One of which will be very similar to the above link. I have an idea for 2 more as well (one inside an asteroid and other in hyperspace (this one will mostly have enemies come from behind but occasional dangers ahead too)). Also plan to have a Easy mode, and maybe even Super Hard mode. :lol

I also plan to add a few more things, like shield for the main base as an upgradablething to last longer as well as a fighter jet type bot that will go out in the outer edges and fight the enemies before they get too close. Will prob have to re-balance some things with this.

Currently I plan to try to make it playable on the web for as long as I can, so I can get help from people testing it and trying it out. :)

Hey! I'm still number one on the leaderboard :3

Wonder if I could pm you a question or two about something?
 

Sycle

Neo Member
I took my first wade into the Steam SDK this week and added leaderboards to Assault Android Cactus.

leader.jpg


The interface is a little rough around the edges still, but it works! Had over 140 entries on the first level in the first day, and so far the scores and character distributions are holding up pretty well! There's even a few levels that nobody's got an S rank or higher on yet :)

There is a definite bias on certain levels towards certain characters though, it's going to be really interesting to watch it develop.
 

-COOLIO-

The Everyman
Alright, I think it's about time I wrote about it. Introducing



, the world's first first-person time-moves-only-when-you-move shooter*. To explain it simply, it's The Matrix meets Hotline Miami meets a little bit of Braid. You can just stop moving in the middle of the room, look around, see where the enemies are and then decide on the best course of action (which usually involves deciding on which guy you'll shoot first). Take your time, you have as much as you want.

Play SUPERHOT on our website

The game was initially created in Unity during the 7DFPS game jam, and then extra-polished for the WGK 2013 conference, where we snatched the first prize in the Developer Showcase competition. The original version of the game has also been featured on Rock, Paper, Shotgun, IndieStatik and GiantBomb.

If you'd like to know more about where we're headed with the game, submit some feedback (we do love getting feedback from the players) or just ask some questions about the game/Unity, tweet/follow us at @superhotthegame or just drop me an e-mail at spierek@superhotgame.com. Thanks in advance.



*actually, the time moves very, very slowly when you're not moving, but "time-moves-only-slightly-when-you're-not-moving shooter" is not as marketable

minimislist 3d artstyles are veeeeeeerry hard to pull off, but i think youve done well here. also, a very interesting concept.
 

2+2=5

The Amiga Brotherhood
Alright, I think it's about time I wrote about it. Introducing



, the world's first first-person time-moves-only-when-you-move shooter*. To explain it simply, it's The Matrix meets Hotline Miami meets a little bit of Braid. You can just stop moving in the middle of the room, look around, see where the enemies are and then decide on the best course of action (which usually involves deciding on which guy you'll shoot first). Take your time, you have as much as you want.

Play SUPERHOT on our website

The game was initially created in Unity during the 7DFPS game jam, and then extra-polished for the WGK 2013 conference, where we snatched the first prize in the Developer Showcase competition. The original version of the game has also been featured on Rock, Paper, Shotgun, IndieStatik and GiantBomb.

If you'd like to know more about where we're headed with the game, submit some feedback (we do love getting feedback from the players) or just ask some questions about the game/Unity, tweet/follow us at @superhotthegame or just drop me an e-mail at spierek@superhotgame.com. Thanks in advance.



*actually, the time moves very, very slowly when you're not moving, but "time-moves-only-slightly-when-you're-not-moving shooter" is not as marketable

Screens remind me of robocop 3 for amiga that had an amazing atmosphere
robocop3.png
 

JulianImp

Member
I took my first wade into the Steam SDK this week and added leaderboards to Assault Android Cactus.

leader.jpg


The interface is a little rough around the edges still, but it works! Had over 140 entries on the first level in the first day, and so far the scores and character distributions are holding up pretty well! There's even a few levels that nobody's got an S rank or higher on yet :)

There is a definite bias on certain levels towards certain characters though, it's going to be really interesting to watch it develop.

Keep up the good work! After playing the demo, I can say I'm definitely going to buy this game. I didn't have anyone to play it with when I tried it, so I haveyet to try using keyboard + Xinput + DirectInput, but so far the game looked great. I think the morphing levels make things a lot more fun than static set-pieces, and the first boss was interesting, if a bit of a pushover. Does the game difficulty scale according to the number of players, or does it simply make things easier due to having multiple times the firepower? Also, is there friendly fire or a way to toggle it in multiplayer mode?

It's amazing to know you were able to implement the Steamworks SDK's leaderboards within such a short timeframe. Does it recognize all the odd characters Steam allows in usernames?

Back to my joint project, I've been implementing the messaging system for a component that measures an object's temperature. If things work out the way I expect, this'd let me make some interesting stuff with it...

By the way, I have a question regarding rigidbodies. Right now I'm using rigidbody.AddForce(Vector3) to move the player, but it has lots of intertia, making the controls floaty and slightly unresponsive. Does anyone have any tips for making the controls tighter while still using rigidbody physics?
 
Can you make it run at higher FPS if on iPhone 5 but have performance scale down as needed on lower end devices?

If that's not an option, considering the new iPhone is just around the corner, last gen devices (4/4S) are only going to matter less. I'd opt for putting the best experience you can out there now though. If you're thinking long-term, people with 4/4S will likely upgrade at some point and be able to enjoy the (higher performance) game at a later date.

Fusion 2 doesn't allow frame rates to adjust once compiled which is rather annoying, so I would have to build for 30 or 60, the game so far has been built mostly around 60 so everything feels great and smooth.

I might just take the plunge and make it 5+ only, fuck sales this is my first game and it's coming to pc at 60fps too, this game has a lot going on at one time which is why it's hard to manage power.
 

TheGrue

Member
I need to take some time and sift through the tons of pages in this thread, but I wanted to know if anyone if the top of their heads knows if this thread has some information on how to start with a gaming idea and learn how to go from idea to learning how to use tools to make the game.

I have an idea for a game that I don't believe had been done before and is a different take on a certain genre. I've starting working on a basic framework in written form for how the game will work, what levels would be like, etc. I know I want it to be 2D and as such I think I want to wait until Unity 4.3 comes out to begin attempting work on it. Gives me plenty of time to really flesh out the ideas and such.

I started looking for Unity books on Amazon and an finding many of them are for version 3.0 and so I wonder how long it would even take to get something that might be updated for 4.3.

I know the Unity site had resources for this stuff as well. Any other resources for learning this stuff from scratch? In my current line of work, I've had to do scripting, but the only real programming I've ever done was Basic as a kid in the 80s. I think I could definitely learn and it seems like I've seen fairly inexperienced people learn to put games together, though I recognize maybe this is the exception rather than the rule.

I've really been thinking about taking my love of gaming and maybe finally doing something with it and have come up with some ideas I like. The last one that I really liked ended up being done by another person and I think that sparked me to maybe finally try to make this happen with a new idea I came up with.
 
Status
Not open for further replies.
Top Bottom