Archive for December, 2011
Rocket Man Stan postmortem
So, I was very exited to be able to do this year’s LD, this has been my second one. Last time I did it with a freind, our entry was Dwarflings. This year, I decided to try LD48, but unfortunatley due to something that popped up last-minute (literally) I had to move it to the Jam. I had a few frustrations jumping right into Flixel 2.5, which I had no idea would be so different, but they were resolved fairly easily.
(Here is my entry if you’d like to see it and rate it. (hinthint))
What went right:
- Sprites - I’m quite impressed with what I was able to do this time compared to what I did in LD21. My walkcycles still need work, but they’re better. Also, I’m no longer getting artist’s block when drawing characters. I drew Stan pretty quickly, much to my surprise.
- Programming - I think I did pretty well here, just needed a refresher here and there, kept the Flixel reference handy for getting used to 2.5, I’m thinking of writing a tutorial on my code, as it’s good, and Siefer Tim’s excellent platformer tutorial is long outdated.
- Time – Considering I took way too many breaks and started the compo at 2:00 PM ET on Saturday, I still finished, and almost had it done in time for the compo.
- “Feel,” moving – I think I nailed this. Since the game takes place on the moon, I needed to make you feel like walking on the moon, which resulted in great, realistic, high jumps, slow walking, sliding, etc… I’m really happy with how this turned out
What didn’t go so peachy:
- Bugs - As I learned Flixel 2.43, I was caught off-guard by how many changes there were in 2.5, and this resulted in many aggravating bugs that resulted from using old/depricated methods, and fixing these took a good 4 hours out of my time.
- Distractions – Minecraft, TF2, Patriots games, I didn’t really do well dividing my time between game-making and game-playing/watching. ‘Course, I was never good at that.
- Putting things off that I shouldn’t have - I put off the menu and SFX until the last minute, and I didn’t have time to get the SFX in, and the menu just barely scraped on. I had to cull an attract mode I wanted it to have due to time. Had I done this, I think it would have made my entry that much better.
- Guns and Bullets - As you can see, Stan has a gun. But of course, he can’t use it. This was the plan, to add it in and add enemies that shoot, but I didn’t have the time to add a shooting enemy, and therefore didn’t bother with the bullets
- Level design - The level feels too short, and there’s a lot of wasted space and useless jumping.
- Tilemap - I think I overdid the craters on this, it feels like there are too many.
None Alone – Postmortem
Tuesday, December 20th, 2011 3:43 pmSo, after I had some time to relax from the latest great Ludum Dare #22 I have the power to do my first postmortem! Yay!
Overall
I actually managed to finish a real game in less than 48 hours! Something that I never done before!
I got the idea of the game very easily: ALONE = Lonely People = People who want to meet other people = We have a game!
The idea was that there are lonely people who don’t want to be alone anymore and you have to help them meet each other.
1. Getting the platformer basics to work And the people AI
This part was pretty easy:
- I used flan to create a simple map.
- I programmed a simple algorithm which took an exported flan map and added blocks to the screen according to the exported flan map.
- I programmed a simple people AI which made them walk to the left until they hit a wall and then go to the right and so on…
2. Making the simple tools
At first I had some problems with the tools so I made two types of blocks: airBlock and dirtBlock.
- When the player clicks a dirtBlock and the tool which is selected on the inventory is item “0 – Hammer” the dirtBlock should turn into an airBlock.
- When the player clicks an airBlock and the tool which is selected on the inventory is item “1 – Dirt” the airBlock should turn into a dirtBlock.
3. Making the trampoline and the game over screen
- Added a trampoline which you can place on the map and when a people overlaps it the people is launched into the air.
- Added a game over screen which is activated when someone falls out of the screen.
- Added a little fade in fade out between levels.
4. Making a lot of new levels
Making a lot of levels with some help of my friend idea.
5. Day 2 – Making all the menus and implement Kongregate API
Making the menus was very fun and fast!
I am pretty familiar with the Kongregate API so it was also pretty easy to me to implement it on the game!
== At This Point I Finished The Game ==
To summarize
I was well prepared to the competition and it helped me a lot. I know flixel and Flash Develop very good and it was fun to make a game with them.
In addition, I made a game in the Mini-LD and the Warmup so I was even more ready to the compo.
I had some great times on my first LD, I am looking for next LD and I am very proud of myself that I managed to build such a game (I’m fourteen years old).
You Can View And Rate My Game Right Here: http://www.ludumdare.com/compo/ludum-dare-22/?action=rate&uid=5971
Alone Midway – Post-mortem
*phew* Finally back on Solid ground after flying half across the world from Europe to Asia…
So, I made a very very rough game, or more of a game mechanic prototype and it shows:
But it also is my first game. Regardless of the downfalls of not reaching my -too high aspirations- I learned a lot from this little challenge, had fun and I am definetly looking forward for the next Ludum Dare event.
The first thing I confirmed to my self was the fact that, 3D asset creation is a bitch when it comes to UV mapping. That perhaps took way too much of my time, simply trying to create UV surfaces to which I could map tilable textures, on the assets I created for the game. I also seemed to fidget too much on this part, when In fact I should have first done the layout of the map using primitive shapes, and place all the objects onto the scene before working on the assets them selves. Perhaps the worst part was: I was completely aware this would take time from my experience with working with 3D models from before, but ignored my own instincts and warning sas I was working on the game.
Another thing that probably was also a big downfall and a big sink of time, that caused me nearly to reach madness was getting the doors to animate properly: At first I used Unity3Ds transform function in the scripting to try to make a smooth rotation, but I quickly found out that it simply adds to the rotation, instead of making an implicity turn.
After battling with it for over 8 hours straight (I nearly gave up and was going to call quits try to make a function that toggles it open and close), I found a very, very simple solution: That was simply to make an animation and command it to be executed it. Even with this it took a while to figure out why the door wasnt staying open, and constantly looping the animation, before I figured out that there is the Clamp-Forever. After I completed this, I did do the correct thing, and started to work on the game mechanic: But once I did complete the basic inventory system, and the interaction system, 38 hours in, I started my biggest mistake with fidgeting with the UV mapping and trying to work in textures, instead of working on the Map it self, when I had all the systems in I could work with.
I might have as well used blocks placed everywhere to make very simple puzzle.
So in summary, my mistakes were the following:
- I was not completely familiar with Unity 3D… Well it wasnt really a mistake, but I could have done my warmup with a bit more seriousness, and atleast check out how to make stuff interaction, Sure I found out how to make a flickering light within 15 minutes, but the fact that I had to bruteforce my way in with trying to make a door, thats something Basic I probably should have investigate on first.
- Take “alone” as an inspiration for an artistic puzzle game, instead of thinking up something much more simple
- Fidget too much on assets creation instead of the map, trying to get some textures aligned, and trying to do my UV mapping within 48 hours. Perhaps Next time I should just do simple minecraft style textures instead.
- Try to optimize my models, which probably caused lots of problems with the shaders in unity 3D (not sure if this was a mistake, but I saw alot of odd shader issues that are present in the final prototype release)
- My timelapse software could have been researched on more. my default webcam software and fraps simply couldnt do the job: Fraps apparently stopped 5 hours in to the timelapse, while my webcam software only kept a buffer of the previous 30 seconds… Any suggestions what I could use in the next LD?
- Perhaps make something more usual instead of trying something new: My first idea was an creepy abandoned house: Which could have been easier to make, instead of a abandoned gas station in the middle of nowhere, I had to then remove the abandoned, because after doing further research I found out I had shot my self in the foot: This was that you had to find a screwdriver, near a vandalized phonebox to open a Barricade infront of the gas stations door, and then try to do stuff in theree.
- Didnt get to work in the nemesis which would have been a planar 2D black shape with red eyes in the darkness: this would have been athing that would be getting closer and closer, unless the player got indoors and hid them selves.
Now so what went right:
- Game Mechanics: I am rather suprised I managed to get this far: I figured this out rather well and created scripts that would make the creation of puzzles relatively simple and easy to implement
- Gettings the Lighting, and Environment set up: I learned how to create a very nice looking cubemap without much issue, as well as flickering lights
- Sleep: I got enough of it, 4 hours a night is actually a fairly good timeframe, along with a few hours of naps here and there: I was never excessively tired, until the very end.
- I actually got the idea for the game down within 1 hour of the competition starting, regardless of its complexitivity,
Anyway, I am looking forward for the next LD, When I have time later this week, Ill probably check out the works done by everyone else in the compo
Let’s talk about deadly animals.
It’s been a solid couple of days now so it’s time to give my game (The Animals are Deadly) a sober second thought.
Good Things:
- I did things I for the most part knew how to do. Not as much guess and hope it works coding this Ludum Dare.
- This lead to some serious art time which hopefully shows.
- For the amount of time I put into sounds and music it turned out pretty rad. I’m usually pretty bad at that.
- I slept and ate like a normal person all weekend. Felt wonderful.
- Kicking birds away is fun.
- The HUD looked sick, but I’m pretty biased towards big stupid HUDs.

Bad things:
- It’s pretty hard to tell what the Van does. (It scares the birds away; can be used to stay safe for awhile or keep birds from following behind you)
- The map is WAY to big with WAY too many things I must have been subconsciously overcompensating for something.
All in all it was a good run this Ludum Dare and I’m pretty happy with the results.

Nightmares of a Wizard – Post Mortem
Christopher Yayahkeekoot – @TheYayahkeekoot - Art and Design
Initially, we had our everything figured out. Going smoothly, we started on our various jobs but within the first 4 hours, our sound guy quit so we had to repost and restart. This was a major setback because we knew we needed sound for this game to go as we wanted. I remembered our friend Jacob Lake (aka ClankyTheGorn) did some awesome ambience so we skype called him and asked him what he thought… we were in luck as he was all for it… After that I found producing sprites wasn’t as hard as I had thought as long as I didn’t try to hard, letting my inner feeling take over. This helped me a lot I think, more so than sleep food or even the bathroom (ok, mabe the bathroom helped more).
Things that went well:
-The title menu and HUD
Having finished most of the sprites, I decided to rework the title menu so that it fit the feeling more, I added a fade around the edges and a blood glob that looked more like red wax seal, in the corner which probably made all the difference.
- The Voice Acting
We found that by the time we had it finished, it required voice acting to put the cherry on the cake. This wasn’t so much hard as it was repetitive.. the mic we used wasn’t of the best quality as it lived on Gabriel’s floor. Instead, we worked with it so that it produced something that, though quiet, had no background noise or sharpness. Finally, using audacity, Gabriel amplified it so you could hear it over the background music.
- The Damage system and spells
We knew exactly what we were going to so that helped alot of the spriting side… Having the image in my head I went to work on the fireball… Saturation up, glo up, make a tear shape and paint it orange… done, next the Ice blast spell… Simple ball of blue, add glow… add lgow…add glow (etc x20) and voila! The acid and lightning sprites produced by gabe forplaceholders but were so good we just kept them.
- The theme and storyline
Here, we developed it as we went although we had a good overall story planned. We didnt want to try to develop a story without first knowing the theme so we decided to wait until it started before developing. Fast, effective and easy to implement, our story was also very manipulative.
Things that went… meh:
-The Wall sprites and floor sprites
I did these fast and they were the first thing to do… Not making a Spritemap was the worst idea ever and I may just go back and fix that in a hotpatch in the near future (it’s just a lot of effort on my part) so … yeeaaah
- The Level Select Buttons
These were mass produced by me in 5 minutes, I wish I had spent more time making them fit into the background, possibly having them be constellations or something, though it is not necessary at all
- The Achievements
also made these extremely fast but they came out a little better than the level select buttons. I wished I had made them a little lager and more intricate but whatever, I enjoyed them anyway.
Things that went wrong:
- The wall sprites
ugh… I did them to fast and I wish I had made a sprite-map as I stated before. These were everywhere and made things look amateur and messy and so I give my apologies in that respect.
- The original Gargoyles
We needed a static enemy that didn’t move but still attacked the player.. In a castle what is there to shoot you? Gargoyles! The original grgoyles were hideous, tiny and just overall bad. So I redid them and they look a lot better when I spent more than three minutes on them…
- My body
After the first 23 hours my body decided to just stop working… off to bed for a half an hour and then Gabriels mother woke us up so back to work… It was good though, then 20 hours later my body was just screaming at me to stop… nope, i stated, not happening… it happened. About 6 hours later got up again and blasted off the rest of the game. Slept very little last night as I am not screwed in the inner clockworks. :/ it’ll fix itself eventually, till then I’ll work on the game more!
-Wishes
I had hoped to have some interactive rooms, such as levers/buttons/gates that opened stuff to give it a more moody setting as, currently, it is a dungeon crawler with waves of enemies and a boss… fun but repetitive
–( Overall )–
Our product, Nightmares of a Wizard, overall excelled our first standards and hopes. The appearance of the game could have gotten a little more working on but we were stressed for time and it was “good enough” for me. The coding was beautiful
PS: I really loved messing with people
![]()
[-]==+——————————————————————————+==[-]
Gabriel Silvarredonda - @gabotun – Programming and Design
What went right? --Programming went very smoothly, I figured I would have more bugs then I really did, and I only ever got stuck with a couple of strange changes I must have made by accident and did not notice. --I really have to give credit to Chris for all the spriting here, he worked fast and efficiently and we got all the stuff we needed by the deadline, my 1920x1280 desktop is still full from the 70+ sprites he made in 72 hours! --The mood ended up working very well, we feel the tone of the story flows and the cutscenes allow it to really be what it is. --Jacob really pulled through for us as well, we originally had other ideas for music, but after some problems with that Chris and I asked him for the best songs he could come up with and the end result was spectacular. Stick around for the credits to hear my favorite of his pieces! What went wrong? --Making this as a dungeon crawler style was a good idea, I had originally hoped to implement more boss battles however, but time began to run short near the end so we ended with simply polishing the 9 levels we got done. --We had some awesome voice acting for the different achivements, but in the end only had time to polish and implement the main story voice overs, which was dissapointing. In conclusion, NoaW was a lot of fun to make and I am very glad the theme wasn't kittens! xD ----ACHIEVEMENT GET: [Y U NO KITTEN!?]----
SOLILOQUY – Post Mortem
(This post mortem can also be found on our own blog!)
SOLILOQY – my LD compo game – you can play it and rate it!
Ludum Dare 22 was somehow pretty exhausting for me, and kind of depressing. I don’t exactly know why, but I think that multiple factors brought in.
The weekend before the compo I made a “warm-up game”, even though I planned to do it long before PoV announced this kind of thing. I just wanted to make a game in 48 hours in order to help a friend (a 3D artist), who needed a programmer for his university project. The programming part wasn’t wasting, but the fact that the game didn’t get finished at this weekend (mostly because of my friend
) left feelings of “incompleteness” inside me, which I hate.
Another thing: I didn’t like the theme “Alone”, and I still don’t think it was the best or even a good theme of the ones in the final voting round. But, as I always have to live up to my own standards I wanted to follow the theme AND make a good game. And this often leads to a status-quo – as long as I don’t have the right ideas I won’t start, and as long as I don’t start I won’t have the right ideas. Or something like that. My mind was blocked and I did other things, like playing Skyrim and chatting on IRC (not in #ludumdare, though, that place was CROWDED). Later, I started Unity3D and tried to play out another idea I had days before, about some time manipulation gameplay. It wasn’t feasible to do it in Unity3D, but due to the fact I did something concrete (game with 3D environment and FPS controls) I could develop another idea in my brain, which became the concept of the final SOLILOQUY.
I still think the best part of my game is this name! I thought of it before I thought of the gameplay (but it didn’t give me any directions,), and I liked it so much, I wanted to use it in any case. I’m quite happy nobody else named his/her game the same, too.
Even though I have some experience by participating at Ludum Dare before, I still don’t really know how to cut back optimally. The concept of SOLILOQUY demands levels, and levels demand content and art and story and design and choosing colours and making 3D models … but I knew this would be hard for me, as it was when I made my Ludum Dare 20 game, “TRI“. So I decided to do NO textures this time, and it didn’t hurt much (on the game’s side), but the benefits weren’t that great either. I mainly put the levels together in Unity3D instead of 3dsmax (in contrast to TRI), but this didn’t help me much, either. Altogether I have six levels now, where I really wanted ten, but at least seven.
The levels don’t look that bad (abstract style for the win), even though I chose the colours quite randomly. On the other side, what I don’t like much, the levels are all tutorial missions only. You just jump around in the first two, learn using your souls in the levels after that, press some buttons and work together with yourself. After this, the real levels should come, but I didn’t have time to do any more content.
I finished the last level three hours before the deadline, and I couldn’t do any more creative stuff. I especially failed in doing sounds or anything like music, unfortunately. I thought about using inudge.net again, but it would sound like my other two Ludum Dare games, so I dropped that idea. At least this frustration encourages me to actually learn how to make simple songs with real tools. (Wish me luck.)
The reason why I couldn’t do more creative work: This time, Unity3D was my enemy. Sometimes I really had to fight the engine, mostly when it came to the text you see in the game (story & hints) – Unity’s GUI system still is awkward to look at, and it has bad effects on the performance. So I used someone’s code which displays bitmap fonts via SpriteManager (the original one), but it didn’t work out of the box with all my bitmap font generator tools (I decided to use “TWL Theme editor”). After those problems were resolved, at the very end of the process, suddenly my white text became gray in the webplayer version. Argh! I needed nearly an hour to find out why that happened – a plane with alpha (the dark overlay) had the same distance to the camera as the text, and somehow the editor sorted it differently than the webplayer. Whyever that is.
After the mixed (or even bad) feelings I had about my own game, I’m really relieved that people actually liked it! The current feedback is mainly positive, and some things that were criticized are fixed in a post-compo version (on Kongregate, for more attention)! Other things, like the jumping height / range being too crass, are somewhat subjective and unfortunately can’t be changed without rearranging some of the levels.
Of course, many people complain about the brain-hurting aspect of the game (gameplay and visuals alike), but that was expected. I could have done the double-soul mechanic with just a picture-in-picture style or something like that, but then the game would lose its uniqueness pretty fast IMHO. Also, as soon as dogbomb does his “I play your game drunk!” video, the whole game visuals will make much more sense, haha.
BTW, if you have a look at the source you will need Unity3D. The indie version should suffice for just reading the C# files and so on, but you need Unity Pro (or its 30 day test version) in order to actually start the game, because I used Render To Texture. Sorry!
Thanks for reading this wall of text, and don’t forget to PLAY THE DARN THING!
Lonely Space Marshal – Postmortem
Tuesday, December 20th, 2011 2:38 pmWell this was fun!!
My game is kinda lame and it need some more work. For example it needs more than one enemy
, more levels and a background.. I was suppose to enter the compo but I ran out of time, so I aimed for the jam.

FAIL:
- It started with the theme. I had some ideas but they were way to big for this.
- libGDX is a good library.. But I used it in the wrong way to start with, so 4h++ work were throw away..
- The boss was made when it was 30 mins to go, art + code. It should be a cat but I can not make good pixelart. Not with 30 mins to go! Haha..
- Spent to much time on details. The collision detection is horrible, it works but…. and other stuff that I am ashamed of…
- I submitted something !! Yes I am really happy for that even if it is lame
- Well it is not so much art but I think I can do some good pixelart. If I have time for it.
- I ate pretty good and drank lots of water/juice
- Took breaks and even went to a Christmas dinner with good friends.
Peace
Long Walk Home A Video Guide / Speed Run Video
After reading one of the posts on the Ludum Dare main page about creating a video of your game. I decided that it would be a great opportunity to demonstrate the game being played by myself. I hope other game developers do this with their games. It’ll give me the chance to view and understand games from the developers perspectives and perhaps get to rate games that I couldn’t otherwise play if they are windows only ( as I am on OS X)
I hope you enjoy.
Success!
We finished our game! Whee! Download the windows package here.
Here’s a screenshot:
Even though it does say “Game Test”, this is the final version. If you’re running on Linux and want an executable, drop a comment on the game page and I’ll submit one. The game runs fine under wine too, I got it to run under wine on my mac and Linux laptop.
Solitude-seeking rock star postmortem
I wrote up a postmortem for this game here: http://blog.wolfire.com/2011/12/Ludum-Dare-22-Alone
Timelapse: The making of Ghost Town
Tuesday, December 20th, 2011 1:36 pmCovers about 20 hours of actual work, most of which spent with a warm cat on my lap.
Post-mortem coming soon!!
Edit: thanks Galman for helping with the embed!
Desert Adventure – Postmortem
First of all, the game: Desert Adventure (with Kittens)
This game is a text adventure where you control a player waking up in a hostile environment.
What went horribly wrong:
- Theme, I had like 0 idea what to do with Alone (but I can only blame myself, that’s one of the few themes I voted for in the final round).
- I procrastinated way too much while pretending to be looking for an idea.
- I had other things to do that weekend, which I did during the last 5 hours of LD.
- I’ve had to rush making one third of the game’s content in one hour.
What went right:
- Using jQueryMobile for the first time.
- Choosing a text-adventure (time was short, 12h were already gone, so not having to create assets except using jQuery’s ThemeRoller for text/bg colors was great).
- Adding Kittens!

- Choosing a web-deployable framework (makes packaging 100x easier).
Although I wasn’t inspired as much as during previous LDs, I’m happy with what I came up with and I hope the final product will satisfy you, the players !
Post-mortem: LUDUM DARODIUS
Another LD48 over, and I got some sleep in a warm cozy bed. Which is nice, especially because at the location where I was programming the game, the heating didn’t work o.O
So let’s do a final post for this LD: I was watching many Parodius videos on youtube a few weeks ago, simply because I like the music. Also:
Gradius (original)
Parody + Gradius = Parodius (awesome game)
Ludum Dare + Parodius = Ludum Darodius
What went well:
Graphics: I managed to make lots of animations in GraphicsGale (awesome program), and even though I was like laughing all the time because they looked so funny very close, I don’t regret spending so much time on them
Gameplay: I wanted to make a helicopter game for a long time, and I did!
Alternative challenge: Haha, did I really have a cat in there
?
What didn’t went well:
Theme: When the theme was announced, I made a draft. And didn’t like it. At all. Made me want to give up, because I like funny games. Kept drafting, but no. And that part alone took 4-5 hours already :/. So I scrapped it all, and scrolled through the posts on this site to get an idea. Until someone had a post with that skunk and the cat of the looney tunes, and then it made *ping* (thanks for that!). ‘Leave me alone’ rather than ‘alone’ alone. Plus, the kitten challenge kept me going
Sleep: Unbelievable, I felt like cr*p after the first night. Getting old
? At that time I was staring at the code, unable to do anything. So I kept animating and drawing more and more sprites + making concepts for new ones.
And that’s the ranting for this time. Always a nice experience to code and code and code and code
Screenshot for those who don’t make it to the boss (would be sad if you didn’t see the animation ^^). Side scrolling penises!??!?
:D. They were supposed to look like the mountains from Super Mario
Happy voting!
Singing Zombies Timelapse
Another day, another timelapse.
Unity3D, Maya, Paint.NET and FL Studio.
Couldn’t do a timelapse :/ Sorry!
As you may know (or not), I used TimeSnapper for timelapsing. However, for some reason, all these screenies cannot be used in my video editing software, because of some “missing file” issues when I select all of these. :/
Well, now at least I know that I should test my software even better. :U
Also, I was thinking if I should continue developing my game. The truth is, I want to abandon TGF2 in favor of C++. You know what that means for my game.
Well, I still have time to think about it. Not that I have a deadline now anyway
And again, entry: http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&uid=3133 (for those who are curious what I am talking about)
Timelapse and final thoughts
Here’s my timelapse, complete with faffing around in Unity like a noob:
I wrote some thoughts about my weekend on my blog, but generally: very happy with how I managed to get to grips with Unity, and very much looking forward to using it again in future. As for the game… I hope people see where I was going with it, even if it is a little unfriendly to the player! But overall another great Ludum Dare weekend (that’s 5 now :O).
Edit: Oh yeah, the game page is over here! http://www.ludumdare.com/compo/ludum-dare-22/?action=rate&uid=1626
Feed back the feedback!
Tuesday, December 20th, 2011 12:55 pmHello there!
I’d love to get some honest feedback on my game. Ratings, comments and constructive criticism are very much appreciated!
Download, rate and comment it here!
Thanks a lot!
FELINUS is finished! + video
hello, and congratulations to all you darers for making it through the weekend. i finished my cat SRPG in time, and now that the dust is settling and i have gotten some sleep, i have this gameplay video to show off.
time to play some games!
The Purging – Postmortem
Not much to say here
What went right:
Simple gameplay idea
Using tools i’m familiar with
Livestreaming, there was only a few people, but they were a great motivation and stress relief
What went wrong:
Making a level editor, should have added a few more features like painting an area and auto-save
Enemies programming, should have optimized this
Timelapse:
Download and rate here:
http://www.ludumdare.com/compo/ludum-dare-22/?action=rate&uid=2958




















