Posts Tagged ‘C++’
Right, I should probably have written and posted this much earlier. But my life doesn’t always give me enough time for these things…
Regardless, prepare your eyes for the wonder that is;
Not Your Average Mining Emulator*
This would be my fifth finished game, but also the seventh Ludum Dare I’ve tried to join in on. And I’ve got to say that this was not one of the themes I was hoping for myself, but I still did what I usually do; Sit down for a few hours just after the theme’s released (3am here in Sweden) and sketch up a few game ideas. And then I can take those ideas and polish them after sleeping on it for a few hours.
The ideas I managed to sketch down for this LD were of a Diablo UI inspired rougelike, a submarine hunting game that also spun off as a wreck hunting game idea, an idea for a submarine shoot’em’up, and finally something of a clone of the old game Motherlode and Clonk. In the end I decided to go for the final idea, as that was the one I felt held the most promise with the lowest amount of graphical work (my weakest point).
So, with that in mind.
What went right?
- Had already prepared a simple framework that worked well for a 2D sidescrolling digging game, helped cut down some on the development time. Inputs and things prepared in advance is really nice, since otherwise such things would eat development time.
- Streamed everything, every second I was at the computer. This really helps with the focus, and I even managed to keep enough attention on the chat to be able to answer some questions that arose from viewers.
- My art ability seems to have improved slightly since I started Ludum Dare, so the first sprites I did for trees and ores came out looking really well.
- My thoughts on UI design turned out perfectly fine too, I’ve noticed that many people’ve commented on how nice and smooth the in-house UI looks.
- A crafting system turned out easier than expected, so I was able to throw it together and put in two recipes in only about one and a half hour.
What went less right?
- Didn’t think to grab an existing physics engine like Box2D, so lost a huge amount of time writing physics and debugging them. There’s actually a collision bug that slipped through when I was working on ladder support, since I moved some code about and accidentally removed the part of code preventing you from jumping when you have a wall above your head. I really need to cure my NIH syndrome I guess, but it’s just so much fun to recreate the wheel.
- Didn’t feel I had enough time to really work towards sound or music in the game, so it’s a very silent game. This is something I really suck at doing, so I guess I won’t be releasing any games that take in high scores on Audio any time soon.
- Still can’t draw a player character in any way, so the player stayed as a cube saying ‘IDLE’ until the last couple of hours. And even then I only really managed a simple stick man.
- I failed to put together an inventory system like what I originally thought of making, so lost several hours of development rewriting that. In the end I figured that only having a single object on the player was acceptable, and spent more time getting the house to be able to store things.
- Because the inventory system failed to be finished I had lots of code that was supposed to be used with in-game tools that you couldn’t craft or carry.
- Didn’t have ingredients for proper food laying about, so ended up with simpler food and that just doesn’t feel as good. No food photos from me this time.
- Another entry made from scratch in C++ using SFML, this is starting to look like a theme for my entries I think. Maybe I should sit down far in advance of the next one and create a larger base framework so I could use that instead, based on SDL maybe?
- This Ludum Dare I decided to try a simpler game without using my home-grown entity component system Kunlaboro, so this game is more of a statemachine based game. And while it feels really good to go back to my roots for a simple game, I can’t help but feel that I could’ve gotten so much more done if I’d used Kunlaboro for it…
- I should try to move game logic away from base C++ code and towards scripts, maybe using Lua or Angelscript. This needs for me to have more time before the start of the compo so I can properly prepare the framework though.
To finish, thank you to all the people watching me work. And those of you that commented on the entry, both during the stream and during judging, every bit of criticism helps.
I’ll be seeing about maybe cleaning this up later on and releasing a post-compo version, though I don’t know how much of the original code would be left afterwards. It started off so nice and neat, but now the codebase if just a horrible bunch of duct tape fixes.
So, almost a day into the compo and I’ve gotten myself done with the basic game looks. Going rather well I’d say then.
I’ve still got to add proper physics, proper digging, resource management, buildings, etc, etc, etc. But it’s still going rather well I’d say.
Plus, I’ve somehow managed to actually make the game look okay, which I’m the most surprised about. I was expecting it to look horrible at this point, and all it does is look unpolished.
You can watch me creating it on my twitch page, though I’ll be breaking for some food right after this post. Look back in an hour and I’ll be back, hard at work again.
This will be my second LD, and this year I’m taking a somewhat risky approach. I’ve been putting together a little entity/component/system in C++ over the last couple months, and threw a teensy little game engine on top of it with SFML. We’ll see how well it holds up (and if it doesn’t, I’ll get some work done on my engine :D). I’ll be working on throwing a few niceties into the engine in the next couple hours, in a last minute excuse for preparation.
My engine code is hosted on GitHub: https://github.com/stett/frame.
OK – time to run to the store to make some regrettable dietary decisions.
Let’s do this!
Well, now that I’m back on the internet again after my short vacation and gradma visit I’ll be making my entry statement to the compo.
Hopefully I’ll have time once I get home (on a train at the moment) to start working on a base framework, so I don’t have to spend the first hours doing that.
My tools however will be the same as they’ve been for all my other LD entries;
- CMake (Visual Studio on Windows, Clang/GCC on Linux)
- C++11 (Code for the Code god)
- SFML (Graphics for the Graphics throne)
- Gimp (Glorified stick figure drawing)
- Blender (In case third dimensional needs arise)
The code will, as always, be on my GitHub. And I’ll be streaming the entire process on my Twitch account.
I’m going to make an effort to try and answer any viewer questions that might arise, since I haven’t been very good at that the last few times.
I guess all that’s left to say is; Good luck to all the rest of you nice people, and let’s aim for a nice theme.
I just submitted my Flappy Jam game (For more information on the Flappy Jam, click me!) and it’s turning out to be pretty interesting! I am actually really proud of this game, as this was one of the first times I have taken more than a few days on a game. The main gameplay is just jumping over some randomly generated spikes. Really. It’s simple, but so was Flappy Bird. That was the point of this jam.
All in all, it was a lot of fun to make, I got to get better in a lot of areas and actually explored a lot of stuff.
It’s not super flashy, but I am actually pleased with the art.
Some things I learned how to do from this jam:
- High scores saved to a file, keeps scores after player closes game.
- Improved randomized spawning systems.
- More reliable and less buggy “scrolling effect”.
I reused the speaker icon asset from my last LD game! Woo! Reuse of assets!
Here is what the death screen looks like, as you can see, it has detected that my amazing score of five was greater than the score in the file (I set it to zero, for the demo.) and tells the player that they beat their score by showing the player a very fancy medal. I designed this system in about two days, without any prior experience with “long term” score capturing options. Pretty darn neat if you ask me.
Anyway, I thought I’d just share that with you guys.
I used the T-Rex C++ engine I made, with OpenGL (SDL_OpenGL) to draw everything, SDL for window and input management, MMSystems for the sound (I’ll get SDL_mixer working, someday.), glut for the text (I’ll get SDL_ttf working, someday.), and SOIL for texture loading!
|Current Title Screen of the game|
Yesterday, I posted the day zero development log of my Mini LD 48 game, Death Plot. Now I will explain the game. I am using a more literal definition of conspiracy and façade. The game is a top down two dimensional shooter/bullet hell. It is a single player game where you control two characters at the same time, tying in conspiracy.
|The graphics are OBVIOUSLY placeholder. They’ll be worked on tomorrow.|
One of the characters is controlled with WASD controls, the other with the arrow keys. You will fire bullets with the spacebar. It is intended that you use both hands on the keyboard, and control the characters single player. That adds a challenge. You could potentially do local multiplayer, but it is not designed that way.
The enemies come in two flavours: real and façade enemies. The real ones shoot bullets that one shot you. (It’s a bullet hell after all.) The facades’ shoot bullets that don’t harm you, but they serve as visual clutter to make dodging more difficult.
I haven’t completely decided on the visual style, but it will probably be ASCII or early sprite based.
Anyway, that’s the general gist of the game. If all goes well, I will have a playable prototype tomorrow. My Day 1 Dev Blog is coming next.
You can follow my Ludum Dare blogs on: www.ictuateanomaly.blogspot.com or twitter.com/Kerinova_xeon
Yay! That was so much fun, though. Unlike LD25 with the team, I felt so little stress I thought I was dreaming!
I don’t currently intend to become the best game jam dev evar, hehe, I just had fun making something, even if I didn’t get all the way with it in the time limit, I will always have the ability to return to it and flesh it out. I love LD because of what people end up doing with the always loved-and-hated theme both during and after!
Postmortem and top-down, plot/world-focused game design heuristic (for those of us who ain’t so good at starting bottom-up from a gameplay mechanic) after the jump:
So, I have been learning C++ for some four to five months now. Last Ludum Dare, I used C++ to make a text adventure game. That was the first ‘official Ludum Dare’ game I made with C++, and I was pretty happy with it. This game had no graphics or sound, and that’s because I didn’t know how to program those at the time. This LD, I made a game with graphics and sound, personally, I think it’s pretty cool I was able to learn these skills in just four months.
Or, as I put it in a post on the second of October; “I am still learning more and more about C++ and OpenGL, so maybe next LD I will have sound and graphics. Who knows.” I am proud that I was able to make something playable in OpenGL and SDL in the span of just 48 hours that also had sounds and graphics. Thank you, everyone.
I will still be doing a post-mortem after the voting ends, I just thought I could share this cool experience with you guys.
After adding the parts to flip the tiles it was still kind of crazy so I had to go through and clean things up, make some things work how I didn’t intend and make it so there could be more empty space. It’s much better, but there is still a decent amount that needs to get done.
The right side I have to deal with and I’m thinking I may need for it to fix up certain areas automatically because as is, the logic can’t fix all the problems due to it not knowing what the next piece will be. I may have it look ahead one space to choose the best piece, but that’s still a lot of work.
So I started the compo very late and I won’t be able to finish in time, but might for the jam.
Anyway since I haven’t made a post yet, I should explain.
My idea was to make a climing game where you only get one life and chance, meaning if you die you can’t play the game again, you know like real life, basically because I’m an ass (unless you delete the hidden file, then you can play again, but you lose your score). Well I decided on 2D and for it to be pixel art, haven’t done either before, main mechanics were pretty easy to manage, but the biggest thing has been making the level randomly generate, which I’ve also never done before. Let’s just say it’s taken a while to do that and partway through I realized I needed another piece. The art is actually pretty easy, though I’m not much of an artist, used the program Pyxel.
I’ve been working in Unity, as that’s what I’m used to, pretty easy for 2D games from what I can tell, was easiest to program my own controller for it instead of using anything built in.
As you can see in the image, it looks like crap, that’s because I haven’t added anything to flip the pieces, which is used to determine what to place, based on what’s below and to the left and if the one to the left is facing left or right. Once I get that, a lot of issues should clear up. I’ll also need to shrink the character, and make art for that.
I’ve now made the game more polished and I’ve added pretty textures and “animations” such as snow fall and santa flying!
The following video shows what I’ve done so far:
To do list now:
- Create Christmasy Music
- Add said music to gain
- Refine controls
- Refine falling “logic”
- Compile and bundle for Windows/Mac/Linux
- Add Awesome Sauce
- Remove Rubbish
- Programming Language – C++
- Graphics Library – SFML 2.1
- Audio Library – SFML 2.1
- Image Editor/Creator – Photoshop CS5
- Music Editor/Creator – Garageband and Logic Pro 9
This is the first Ludum Dare I’ve done so I thought I’d keep it simple. The ‘plot’ goes something like this:
This year, you have been very naughty and Santa was only going to give you a piece of coal and an orange (and not even a good orange!). However, he accidentally dropped one and you are now trying to protect it as Santa throws rocks, pieces of coal, and oranges down at it to destroy it.
The following video is the first time I thought it was a game and not just a thing.
It’s better now but only in gameplay and not graphics.
This game was made using the following:
- C++ (Programming Language)
- SFML (Graphics/Window/Audio Library)
- Sublime Text 3 (Text Editor that is AMAZING!)
It works on Mac and Windows (and probably Linux too but have not built it yet) so everyone should be able to play it!
The first day is done for me. I managed to do around 4 hours of game dev today (from 18:00-22:00 local time). Installation of tools took some time and being a family man, 4 hours is what I had so the progress was limited, but this is where I’m at.
The idea is to build a game of a cat with only 1 life (when everybody else around him has the typical 9). How he still can beat the others is something that you will see day 2… (hint: cats are stooopid, but the cat with only 1 life has to be smarter than the rest).
The tools used: Visual C# 2010 with JyPeli game programming library. Paint.NET was used for drawing sprite graphics.
What was produced in that 4 hours was 10 or so sprites and ~250 lines of C# code. (and then I spent another 1:30 to prepare the timelapse, screenshots etc., but where is the fun in LD if you do not share?).
If you are longing to see more of my process, see the timelapse:
Been coding now for eight or so hours, got the basic features in already. Now I just need to add some proper AI and a nice world for it all to happen in…
And actually draw some proper art I guess, though I doubt that will work out.