Posts Tagged ‘C++’
Something I am coming to learn well is being proud of the work that I do in games. I have quite a catalogue of 15-20 projects I consider ‘playable’, probably five of which I am proud to be called the father of. My latest project, a building block based game, is a game I am very proud of. It is one of the most visually pleasing games I have ever made, and the gameplay is calming. I look forward to the next Ludum Dare.
Thought I should share that with you guys.
Well, I’m going to be here for LD28 too. Not even sickness shall be rid of me this time…
Still going for the proven C++/SFML combo, maybe going to use Kunlaboro (My entity system) for this time too, might also decide to try a more scripted game instead of pure C++.
Visual Studio 2010 as my IDE
GIMP and Blender as content creation
Sound and music are not really a priority, since I sort of suck at making them but they’ll be procedurally generated if they’re there
SFML will be used, straight from Git and still warm.
There’s also a strong possibility for Kunlaboro and Angelscript, but we’ll see about those.
I’ll also be streaming this one, like I’ve done with the last couple, and I’ll try to have a timelapse done too.
Hey guys! Just finished up an amazing Jam where the point is to link a button in your game to a charity of your choosing. You may have heard of it as we have all been talking about it for a few weeks now here on LD. Anyway, my game is called MINIMALISTIC TURBO and I am very proud of how this turned out. This was my first game with a menu, sounds, actual graphics, and I really am just really glad with how it turned out. I think what I enjoy most is the tight controls, gameplay, and how there are very few bugs, no really, I gave this to my testers and they couldn’t find anything that was actually a bug. A few small tweaks, but no game breaking faults. This is pretty big, if you remember my last LD game, a text adventure that was pretty buggy and more often than not break for testers. I am still pretty proud of the text adventure, it was really big for me at the time and still is pretty complex, anyway, that just shows how much I have grown.
Something else I added in this game were sounds I haven’t really had any experience with sound in games, I mean, I had played around with some stuff, but this was my first game that really embraced that and did it well.
I am a little bit unhappy with how my text ended up on the main menu, the taglines at the top are different lengths, and I couldn’t figure out a clean and quick way to center it because I am using outdated OpenGL and GLUT. if I could learn how to do textures soon that would be more than helpful. .-. I tried to get SOIL to work DURING the Jam, and well, that didn’t really work. However; I didn’t try too hard on that. I learned about getting burned out and sticking on a problem a while ago, in a Mini-LD. (Pro-Tip: When stuck on a problem, find a kludge, make a note, move on, come back to it later.)
Anyway, all in all, I am really proud I was able to do this, and I hopefully helped the Red Cross along the way.
Wanna play my game? You can look for it here, or download the game.
Use the hashtag #MINIMALISITC_TURBO to tweet about my game! Or, follow me on the twittertwaters (@powderblock) for live tweeting late night fun.
In my personal slow-Jam I’m working on I decided to leave everything to Random and a few parameters.
Still there’s the need for levels, and the very basic requirements that everything should be connected, walled in and have a nice balance between narrow passages and open spaces.
There’s probably well known and better ways to do this, but any case, since I think the end result was more or less exactly what I wanted, I’m gonna outline how I did.
- Define an allowed geometry by normal sampling a width and height of the map (in tiles). I used a 2D boolean array as representation when doing the calculations
- Randomly seed some few (<1%, but more than ~7) positions so that each has a safety margin to the border of the array
- Iteratively connect dots by randomly selecting one not connected to the others and walk towards the closest other true position following Manhattan distance = 1 setting all passed positions to true.
- Repeatedly randomly select any edge pixel and randomly select one of its 4-neighbours that are unused and expand there.
- When sufficient number of tiles have been placed. For all edge tiles, place a wall in all unused positions with a chessboard distance of one
I only need quite small levels as each is only meant to last for maximum of 60s and the game is absolutely way too confusing to allow for larger levels, but in principle it would only require some parameter tweaking to get them too look quite differently.
I also like how one sort of can see where the seeds must have been placed.
Of course if anyone is interested in the code just let me know (it’s C# for Unity, and it’s not super-efficient by any means but since it’s only run at level start I figured it doesn’t matter too much).
So, recently I got bored and got an idea of creating a new game. First idea: MMO. Then “well, I’ll need to write both server and client and deal with networking stuff”. Goes out.
Second idea: make something small. And, after an hour here’s it:
HP and MP are hardcoded and unchangable, but hey, that’s alpha
Then decided to move forward. Already got mapping stuff (currently hardcoded table of integers, to be replaced with files), working walls (with deleted ghost-mode :] ) and with some nice green grass. Doesn’t it look beautiful?
Hey, this is my first game without using Game Maker or any other stuff, don’t blame me
It’s confirmed to be working on Debian, Cygwin and WinXP. Tested it through SSH on my phone, too :
If you feel interested, have a look into sources hosted on my GitHub. You’re welcome to drop your hates below, too!
PS: Maybe it’ll go for next 48h, who knows..
Time for our post-mortem
I won’t re-introduce the team, you can go to our “we’re in” post for that. Basically there were 3 of us and we’re pretty awesome!
So what happened?
Well, we made a time-bending tower-defence game called “10 Second Onslaught”. It’s about an onslaught you see, and the onslaught in question lasts 10 seconds:
The game wasn’t really “finished” after 72 hours even though it’s completely playable. I’m actually glad we were over-ambitious though: it’s a good beginning and something I’m still working on (in a separate branch of course )
What went well?
The art pipline was probably the one thing that went particularly well. Thomas is really a 3D artist, so soon reverted back from pixel art to making models and rendering them to bitmaps. To speed things up I wrote a couple of little ImageMagick scripts to mirror and then stick these images together into sheets. Then it was just a matter of using the haxelib spritesheet to have animated characters in the game
What went badly?
For various reasons, mostly the technology (OpenFL) being something only I had ever used before, I ended up writing a majority of the code, which is just stupid. Next time we’re going to have to organise ourselves better.
Read on for a rather long discussion of OpenFL, including comparisons to Unity 3D and Löve 2D…
So we finished our Second Ludum Dare! It feels great
Boy was this one FRUSTRATING
But we learned SO much……
-POST – MORTEM-
First the things that went WRONG
-1. LIMIT THE AMOUNT OF BETA SOFTWARE USED-
Heres the first thing I did wrong. I am running on a OS 10.9 beta. I am writing my code in Xcode 5 beta
Besides all of the crashing, one night I hit a total dead end bug in Xcode where I could not distribute my app. I almost QUIT the dare.
-2. MAKE SURE IF YOUR STREAMING/TIME LAPSING THAT ITS SET UP AND WORKING BEFORE THE JAM-
I spent too long trying to make sure my stream was exactly the right way, plus because of rule 1, it kept crashing, total productivity bust
-3. PREPARE YOUR TOOLS/CODE BASE/LIBRARIES BEFORE THE JAM-
This jam I switched over to SDL for the first time. I hit so many little snags that were simply because SDL works different, a number of times my productivity stopped was because SDL would be handling Floats as Integers, and leaking memory when it renders text, or flat out dropping sound because of an extra curly bracket.
Things that went RIGHT!
-1. Work with friends-
Luckily I had the support from two close friends of mine. Both of which worked with me in the previous jam, but had dedicated time this jam to help. Having three people working on the game felt nearly perfect. The conversations were always motivating and productive. Also having two other people critique your code/sound/music/art is always great. A number of times Id find myself implementing something , and because of lack of sleep/reality/food one of my friends would remind me that what I did looks or sounds RIDICULOUS
-2.Have a Plan-
My friends and I prepared better for this jam. Last jam we did not realize the theme was announced so soon, so we scrambled after work to get together. Not this time, we were together as soon as the theme was announced and spent a good 3 hours whipping up ideas. I have a HUMONGOUS white board that worked so well in capturing and reducing our ideas to the very best ones. We could then get down to work, and glance at the checklist of things we needed to do on the whiteboard.
-3. Share often -
Try to have people test your game as soon as you can, some of the weird little things you know about the games rules or how it plays may not be apparent to others. You have to develop a sense of “communication” to your player , and there is no better way than to see how another player plays your game.
Overall, I feel extremely accomplished having finished a second dare. This time the pieces fell together much better than before. We had the idea down the first night, then got cranking the next two days. My friends and I discovered new talents and developed some since the previous jam. We look forward to finding out when the next jam is, and now I can’t wait to try some of your games!
—Don’t forget to try our game FSCK! Bit needs your help!—-
So I made it. First time in Ludum Dare.
It’s fantastic experience. A lot of experience.
First I wanted to take part in the compo, but deadline came too fast, so I focused on the JAM.
More time to deadline gave me the opportunity to expand the game.
However, more expanded game == more bugs, and this are sometimes very hard to notice.
Most nerves brought me bug in the collision detection and I spent most of my time tried to fix it.
BUT 20 MINUTES BEFORE THE DEADLINE I DID IT!
Now, after the patching game probably hasn’t too much bugs, I hope, and is playable, so I want show it you.
It is difficult to make a bright screenshot of the game because most of the game take place in dark, so I upload here menu screen.
Full description of the game is here :http://www.ludumdare.com/compo/ludum-dare-27/?action=preview&uid=21095 and there you can rate and give comment, please play and do it!
HAVE A GOOD DAY!
PS Sorry for my english, it isn’t my language, google translate helped me
Ludum Dare 27 has been my first ever Ludum Dare competition.
I was not sure of what was going to happen, if I were capable of finishing a game in under 48 hours, if I would have felt stressed or relaxed, et cetera.
For the competition, I decided to use C++11, SFML, and my own framework, SSV, which is free, open-source, and always looking for contributions/critique.
My development environment was Arch Linux x64, using QTCreator as my IDE, and Sublime Text 3 as my text editor.
The development machine uses an Intel Core i7 processor, NVidia GTX275 and 10GB of DDR3 RAM.
My goal was producing a game that was worth playing in under 48 hours, with native Win32 and native GNU/Linux x86 binaries.
I’m very happy to have reached that goal, and I’d like to share my thoughts about the whole development process.
I worked on the game for about 30-32 hours. I slept, worked on a video for a friend’s birthday, and relaxed for 1-2 hours (played some Spelunky and browsed the internet).
The first thing that surprised me is that I felt constantly stressed. I do not know if everyone feels like this, but I couldn’t stop thinking about the deadline, about the end result.
I have to say that, as far as personal feelings go, I didn’t dislike the 48-hour deadline development process, but I didn’t find it fun either.
However, after finishing, I felt a great sense of satisfaction and reward, which kind of made up for the stressful coding hours.
The second thing that surprised me is that my framework, the SSV framework, was up for the task of creating a game from scratch.
It literally took less than an hour to get a prototype where I could walk around.
A big effort in SSV was put into development of SSVSCollision, a header-only pseudo-physics library intended for retro-style games.
It handles collisions very differently from all other engines out there, and, while not suitable for realistic physics simulations, it is great for retro-style games, where physical bodies do not interact much with each other, but have infinite stability and very precise collision resolution. Here’s a video of it’s performance.
It also lacks all sort of issues that would arise with a realistic physics engine, such as the common error where bodies get stuck between tiles in tile-based worlds.
Anyway, I also created a player sprite, which I had to divide in two parts (arms and body) to avoid repeating unnecessary frames. I used Pinta for the task, a Paint.NET clone for GNU/Linux.
I’m not an artist, and that is obvious by looking at the poor end result of the player sprite. I used the same tool to create all other graphics in-game.
I dealt with sounds by using sfxr, the free, open-source sound generator advertised on the LD website itself.
For music, I used LMMS, a GNU/Linux production software with an UI similar to Fruity Loops. I’m not a musician either, so the end result was poor here too.
The game concept was actually created after the prototype version. I had no idea what I was going to make. I just made stuff and tested stuff.
Then I had the idea of this cool throwing mechanic, where suddenly turning your character would increase the force of the throw.
This is where stuff started getting interesting. I had to deal with my peculiar physics engine in order to allow the player to grab/throw/release blocks.
It went pretty smoothly.
This is what the first grabbing prototype looked like. I also had added the number on the crates but had no idea how to use those yet.
I also had no idea how to use the crates yet.
Then I combined the throwing concept/mechanic with a time-based constraint (10 seconds theme), and had the idea to make the game into a reflex-based, time-based puzzle platformer.
I designed some game elements and threw some test levels together. But I didn’t have time to create a level editor, or to write a JSON level specification. So what did I do?
Tab based in-code level editing. Dear god.
Yep, I used tabs, newlines and spacing to re-create the structure of the level in the IDE itself, so that I could have a rough idea of where I was placing elements.
After making some levels, I created a menu screen, which was very easy thanks to the SSVMenuSystem module of the SSV framework. And that’s pretty much it.
There is a problem with level 5, which is almost impossible because I forgot a game element. But it is actually possible, even if insanely hard.
I’ll judge the game myself, now:
Innovation: I’d say the game is not unoriginal. The turn-based/jump-based throwing mechanic is pretty fun to use, and the game elements, while simple on their own, can be combined to create some interesting puzzles.
Fun: This is a very subjective point. The game is not easy, and can be very frustrating at times. Honestly, I find hardcore games pretty fun – I enjoyed playing my game, even if trying the fifth level for one-hundred times got frustrating quickly.
Theme: My interpretation of the theme is not very original, but I think the 10-seconds constraint that resets works well here.
Graphics: I’m not an artist, and it really shows. The sprites are of poor quality. I tried to redeem myself by creating variations of tiles that appear randomly and maintaining a simple flat look for the game.
Audio: Sfxr is a godsend. I love retro sound effects, and they work well here, I think. Music, on the other hand, is not catchy or memorable, and it’s just a simple loop. It was my first time ever producing music. Here I tried to redeem myself by adding a no-sound and a no-music option to the main menu.
Mood: I tried to create a simple story/world around the game. Basically, you’re working for this company, 10corp, in a futuristic (I guess) setting where getting a job is very hard. In order to survive, you have to work for this company, even if they terminate slow workers to maximize their profits. I used in-game messages (broadcasts from 10corp) to give the feeling of the player being observed and judged during its tasks.
Overall: Overall, I am satisfied with the end result. I’m still not sure if the game is worth improving, but as a less-than-48-hour product, I’m happy with how it came out.
I really hope you enjoyed my entry and this postmortem. Thanks for reading!
Greetings Earth peoples.
For this LD contest we give you ‘Got time for that?- a game that is really three games! Please enjoy this interstellar contribution to your endless entertainment, in our mission to answer that age old query: Will you score?
We certainly hope so.
Tools – Unity, RagePixel, Asset Store UnityGUI skins, Creative Commons music, C#. Source available.
Play on web or desktop. Soon for Android!
Please procure the
diversion game here:
So, I’m finished with my entry: ‘Grig Saves Time’ and I gotta say: I’M FEELING AWESOME!
This has probably been the most fun Ludum Dare I have done, and I feel like I got a lot accomplished. The best news is this: I know I can do it better next time!
That’s right, I dedicated a lot to the development, but the platforming code could have easily been taken from basecode. I’ve done velocity, collision, and keyboard input almost exactly the same in a few other games, and decided I should just put all that into a library and use it as base code for future platforming. The point is, it was not outside my comfort zone, and I spent a lot of time just working out the odds and ends of how I wanted to portray the story. It took the whole weekend, however I did break for dinner and time with my sweetheart last night, and for church today. I slept a total of 14 out of the 48 hours. It’s possible that I make something even more amazing next time.
The storyboards are probably my favorite! It felt good to have a heavier narrative, even in a 48-hour game. Heavier, as in, more than one screen to explain the story, the premise, the reason why our fantasy creature is even going around jumping and attacking.
Livestreaming on twitch.tv: This was the first time I have ever used livestreaming, and it definitely had an impact on my computer. Compile times went through the roof, and I had to deal with wearing headphones to get rid of echo. The friends stopping by to chat was great, though. I stick with the fact that I move around the house a lot, as probably a reason not to keep doing that. Eventually, I can get a computer that can handle livestreaming and compiling and listening to playlist on youtube all at the same time.
So, I want to say thank you to all the friends who sent kind words about my progress, and to those who spent time with me on the stream. This has been, as predicted, the best Ludum Dare I’ve done. Thanks!
This has been a very inspiring Ludum Dare so far. Especially as it’s the first time I’ve taken part!
Looks like my game isn’t going to make it through in the Jam in a playable state, as I’ve got work tomorrow. However, I like the idea (which has been contributed to a lot by my lovely girlfriend) so I’ll try to finish the game during the next week or so.
My game is called Ludum Dare Simulator, or LDS #2.78e^-3 for short, and the idea is that you have to create a game for LD in ten seconds by clicking relevant things around your desktop. The game involves a lot of frantic mouse bashing and should be entertaining for at least 30 seconds. We’ll see, hopefully.
Here’s a couple screenshots from the game thus far. It has working intro, menu and game states, even though the game state is still quite empty and lacks the game mechanics.
Most of my time has sinked into coding basic stuff such as application class, state system, animation and UI systems, and this is my nemesis – it is hard to not create too large and complex systems for a project of this scope. I wrote and maintained a large cross-platform UI library at work during last winter and based on that experience I luckily realized what an endless mess I was heading to today, so I cut it short and decided to go the simple route with this project. So at the moment I have no generic UI code, all the drawing and events are handled in states. That aside, this LD has been a great way to learn to use SFML.
I have also burned many hours at drawing the art. I’ve never really done pixel art before, so it has been quite a learning experience.
I think I’ll head to bed soon, so I wish the best of luck to everyone and thank you for the awesome Ludum Dare! Next time I will be prepared!
Alright! The real game is starting to take shape! I have four semi-done levels, tutorial, credits, menu. It is looking good! I just need to do bug fixes and other stuff.
-I am using “10 seconds” as an action counter. Every action you do adds one to the seconds, 10 seconds each level, etc.
-It is getting hard to do levels in text, because I am worried the user will “forget something” because I am not doing graphics.
Not bad for two or three weeks of learning C++, eh?! Hahaha. Best of luck guys.
I’m loving the progress on this competition. Much more smoothly progressing than in many of the recent LD’s I have participated in. Makes me smile.
The progress so far:
- Wrote the narrative, it’s going to be fantastic
- Finished the map loading
- Created one mob
- Finished the collision between player and map, and mobs and map
- Game states
- Movement and Jumping are smooth and looking good!
- There is an attack, but it’s not so smooth yet
Yet to finish before bed:
- Create the levels
- Create new mobs
- Rework the attack
- Create Death
- Create player-to-mob and mob-to-player collision
- Create level portals in & out
- Create collectible drops from mobs
If I can accomplish all of that, tomorrow’s work will be the most fun of all!!
I am going to have dinner with my sweetheart soon. That’s going to help me feel a lot more motivated when I sit back to the computer to program. Best Ludum Dare yet! <3
(mandatory screenshot :P)