pighead10

LD22

I’m in!

I’ve no idea what any of this is about, but I see people saying things on a post section of this website! This is my first Ludum Dare – nothing will go to plan whatsoever, but I hope to get past the opening sequence.

I’ll be using C++, and the Ogre3D rendering engine with OIS I/O and a sound library I haven’t found yet nor used before. If I get around to GUIs I’ll use CEGUI. Also, the tutorials and sample frameworks on Ogre3d’s wiki.

 

I’ve never finished a game before in C++, and almost definitely will not do again. It’ll still be fun!

 

EDIT: Oh yeah, I’m also using some code I used before in my only existing C++ project.

My first ever game!

I came up with an idea, which I will not post here because, quite simply, I want to get to coding. I forgot how to set up a project with the engine I’m using, Ogre3d.

 

I’ve never actually made a game before, or any form of useful application. Apparently doing it competitively in 48 hours isn’t the best starting environment. So far, all I’ve come up with is the idea!

Idea decided, programming commencing!

I’ve never made a game before. Or application. Or any standalone anything of any use whatsoever. So, this cannot be too ambitious, making a game in 48 hours is in itself hard enough.

 

As the theme is ‘alone’, I couldn’t think of any ideas that didn’t involve programming I almost certainly wouldn’t be able to achieve in 48 hours, being as it is that I have little/no experience with my (or any) chosen rendering engine. Here is my idea:

  • Aim: Stay alive for as long as you can
  • Scoring: Time based
  • Gameplay: You are a man/whatever I can make who can only move left and right, while enemies march towards you from the top to the bottom (like in old arcade classics, such as space invaders). However, the theme is ‘alone’ so it has a twist – you have a weapon, but firing it makes everyone else except the person you shoot disappear, making that person extremely alone and thus the game’s name, “Lonely Gun” (unless I think of a better one :P).

That’s all it is at the moment, but if I miraculously manage to finish that then I will develop it more.

 

MEMORY LEAKS

Taking lots of coding shortcuts to finish my first ever game in time hasn’t been working, and I’ve been delayed with stupid memory leaks. Shortcuts cause long delays!

I have also run into the problem that, my game being 3d, I have no 3d design skills whatsoever. The graphics should turn out… interesting! 😀 Additionally, I’ve absolutely no idea how to add sound using my engine or how to texture the models. So, basically, I don’t know how to add sound to the models I can’t make decorated by the textures I can’t do. Hooray!

 

This isn’t supposed to happen

http://www.youtube.com/watch?v=lEnNdSxnkMY

‘Nuff said. I have absolutely no idea how this is happening, seeing as the only line of code I am using is “node->translate(0,0,-speed*timeSinceLastFrame)”

 

 

 

 

 

 

 

 

 

Comments

Mjiig
17. Dec 2011 · 20:30 UTC
No idea what language your using or anything, but it looks an awful lot like there’s some buffer you aren’t clearing each frame somewhere. You probably already knew that…

Nearly playable

‘playable’ was the goal that I hoped I would achieve in this Ludum Dare, as I’ve never made a ‘playable’ game before. I’ve very nearly got my game idea – which I purposely made the simplest game possible – so I would at least be able to enter this Ludum Dare. However, as the only rendering engine for C++ that I knew how to use was 3D… I now have to make some 3d graphics, which I have no knowledge how to do. Also, I don’t have a sound engine I’ve ever used before. My submitted game may be a bunch of grey cubes shooting at other grey cubes!

First game, first Ludum Dare, successful! The Lonely Gun – Post Mortem

Yes, those cubes are 3d.

I finally completed my first ever game in time for submission in my first Ludum Dare! I had a ton of fun programming this with C++, which my parents find very strange but encourage it. The game is extremely basic in it gameplay and graphics, with no audio whatsoever, and is based around my “gun that fires lonelyness” concept. I didn’t bother to try and plan it any further than it got, because I knew I would 100% not be able to do any more – which proved to be true, as I ended up packaging it 10 minutes before the end without realizing there was a submission hour.

The Lonely Gun (please rate if you have a few seconds!): http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&uid=8539

What went well

Thankfully, unlike my other 10%-finished-projects, there were no major issues that prevented me from progressing. Then again, I would have done something very special to have made a huge bug with the game.  I was very pleased to have created okayish GUIs, and the gameplay matched what I had in mind (except for tweaks – below). Time management was mostly not an issue, as I focused on getting the game functionality working without adding any graphics whatsoever except for the same “ogrehead” premade mesh for everything.

My code wasn’t badly structured, but progressively got worse as I rushed to finish it, but is was mostly efficient by the end product, and I learned a lot about what is efficient and how to code while making this. Also, I learned a huge amount about std and Ogre3d libraries, so next time I will be better prepared. I am going to start learning a 2d graphics engine, probably sfml, as they might be a better thing to start with instead of 3d.

What could have gone better

Obviously if I had known a 2d engine (or had any amount of experience in one – I didn’t “know” the 3d engine I used) the graphics would have been better, but I didn’t expect my graphics to be just coloured cubes. That was a major downside, but not one I could easily avoid. I really, really should have had a longer testing period – I did not know how easy/hard the game would be until the last 30 mins or so, where I quickly asked people to test it and changed it from being too easy to too hard to almost too hard. Because of the issues with the graphics, I had no time to add sound, which won’t help in the rating :(

I have a huge video of the computer screen while making this – I use this way of saying it because it also recorded breaks for games and such, on the computer. You will be able to see my league of legends prowess :) It will be uploaded and put on this page once it has saved, which takes a while, even with my computer (it’s better than yours).

 

I’m hoping to enter the next one, where I will make a much more fun (2d) game and be much better prepared.  I have loads of fun making it, and am seriously looking forward to programming again tomorrow!

 

 

 

 

 

 

 

 

LD23

Early entry!

Hello! I know people usually wait until the theme is decided, but I’m asleep then, so I’m going to go ahead and post this now as I need to clear up some stuff. Hopefully the theme will be evolution, at last.

Now, I have a strange issue with what framework I am using. Previously I used this framework, which hasn’t really changed… Except I’m not using the Ogre3d rendering engine, but instead the SFML library. I adapted the framework a while ago to use with personal projects, but never saved it separately and instead wrote over it my personal project. So I need to filter out everything which is not related to the framework but just built with in on the same files, which unfortunately I don’t have time to do (I may possibly have time for it, and if so will link in this post, but currently I don’t think I will be able to). I hope this is okay with everyone – the framework I used is almost identical do the previously linked one, only adapted for SFML (2.0). I will, of course, link the standalone framework once it has been untangled from my other projects in a further post, but that will be done after the compo has started.

I’ll be using  C++ with visual C++ 2010 express, and I’ve no idea what graphics/sound I will try to use. Maybe this time I’ll remember to actually have sound! 😀 Also, I’ll be livestreaming and providing a timelapse, which will also be included in a further post.

 

Goodbye!

 

Streaming and stuff!

If you read my last post, you’ll realise why I need to give this link to my SFML framework, which I had no time to actually make standalone yesterday.

So the theme is “tiny world”. That’s one of the ones I voted for, it sounds like people could make really clever games with that. I don’t have an idea yet, but I’m thinking of something to do with building and expanding a world. Unlike last time, where I made my first game, I will be streaming, and also I will use a proper timelapse program  for my timelapse, rather than a video sped up x1000 or something ridiculous.

Stream: justin.tv/pighead10

 

A world was born

I’ve thought of my concept, and some of the mechanics.

Basically, you start out in a world that is 1 pixel big. You can build new pixels by using the arrow keys, and pixels of your world will be unlocked using some kind of resource system. Your character – you have a character – starts as being 1 pixel big, and so do the enemies. Notice you “build” not “unlock” new pixels – when you build a pixel the world is generated with something in it – the something being one pixel big. Enemies can spawn with varying difficulty depending on the area that is free around them – for example, if there is a world that is 1×10, then chance of spawning an enemy which is more than 1 pixel tall is impossible. The larger the enemy, the more powerful it is.

There will be obstacles and such, and using incredibly inefficient algorithms the pseudo-random world will create these to force you to do certain things – for example, there will be a bigger chance of spawning an impassable pixel next to another impassable block, which will force you to unlock a bigger area so increasing the chance of big enemies. Then, to defeat the bigger enemies, you will need to upgrade to a bigger character, and to do that you need a bigger space around you all the time, and you won’t be able to fit into small gaps so have to generate even more world and spawn more enemies and use more money and find more resources to build more pixels which allow you to find more enemies which means you need to upgrade your character more and spend more resources and build more pixels… The objective I’m not sure about yet, but there is going to be an objective.

Hopefully this will be feasible will my amateur programming skills. I am streaming and timelapse-ing as mentioned in my previous post.

Goodbye!

Almost a functional game…

I’ve been programming for a few hours, and I’ve very nearly programmed the basic concept and mechanics. What should happen is that you, in your 1 pixel large world, can create a new pixel next to you by pressing the arrow keys. What actually happens is that your cute little pixel stands in the middle of a black background, and pressing the arrow keys causes

I was fully expecting to have to debug my program for hours, but I couldn’t be bothered to change what had been a fun few hours into a frustrating and dull session from debugging. So I turned the stream off for a bit, and played a game of League of Legends. I still can’t fully concentrate on programming at the moment, so I’m going to take a quick break outside and hopefully everything will become clear afterwards. Still, things are looking bright for the future as I have not encountered any parts of the program that I haven’t been able to manage – at least, unless these errors turn out to be complex, which they shouldn’t be.

Goodbye!

 

How good is your eyesight?

My idea for one pixel graphics, in my opinion, was clever. I can’t make graphics, so that would be perfect. Except that I have no idea how to allow people to zoom in…

This game requires glasses.

The evil pixels

Hooray, it’s lunch time. So, what has happened today?

  • I made an enemy
  • I made the worst spawning algorithm in existence
  • I made the worst A* pathfinding algorithm in existence
  • Lots of vector subscripts are out of range
  • My program has crashed a number of times

More debugging! Hopefully I can actually find the vector that is crashing. I didn’t even realise I had a vector that could possibly be iterating wrongly.

Goodbye!

The evil pixels have died

Not only have I fixed the evil bugs with the evil pixels, you can now kill them. After debugging what has been the second problem caused by using a variable never initialised, but just pretended:

Foo::Foo(int pretend){

}

Foo::something(){

pretend / 10

}

But they’re gone now. It’s occurred to me that I may need some sort of extra dimension to the game, as basically you walk, press arrow keys and kill pixels. Also, there is no UI, which may hinder players somewhat,

Goodbye!

 

Gameplay is gameplay

I think my game – well, the gameplay at least – has earned the title of “game”. You can earn points with a suitable algorithm which ensures you can’t just be stupid, get bored and win, there are enemies that spawn, and there is now a resource system which means there is actually an element of challenge. I am having tea soon, so I will not have time to add much before then – I’m just going to play around with some sounds. The only key element that is missing is the fact that you cannot die.

Also, there is no menu, instructions, end game screen, or anything else that would qualify the entire game as playable. And also I’m extremely tired, yet it’s only 5pm and the compo goes on until 2am. Also, I have school tomorrow.  4 hours sleep for a useful, educational environment where you can stretch your mind and learn, or an internet competition where you have to make a completely arbitary game. Which is also infinitely more useful.

Goodbye!

Phew!

After an exhausting 2 days, my game is as complete as it was ever going to be. A timelapse and post mortem will be coming once I’ve recovered, and fixed the glitch which means the game fails to run on some computers but not others.

http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&uid=8539

Thanks to everyone who watched the stream and tested the game. I’m going to try and fix the bug.

Goodbye!

Pixel Progression – Post Mortem

Generate your world pixel by pixel

http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&uid=8539

Hello there!

This is my second ludum dare thus far, and as such my second game I’ve actually made. At least I used a 2d engine this time, so it wasn’t overcome with graphics problems right from the start, and thankfully SFML is an incredibly simple-but-complex language to use, and with my rudimentary resource management framework, I could produce something that people could possibly want to play.

What went well

I’m tempted to say “everything!” simply because I enjoyed it more than last time. Why? Because the basic gameplay was complete at the end of the first day, so I actually had time to add features I wanted rather than scrambling to get the basic gameplay to work. I am not a particularly creative person, but I have what I like to call “logical creativity” – I don’t think of a game from scratch out of thin air, but I literally go through aspects I can program and that I want to have in the game and come up with an idea. In this case it was “I suck at graphics -> single pixel game -> tiny world -> minecraft -> build a tiny world out of pixels”. What I particularly loved is that I found my game fun to play when I was testing it, and I even had time to add a bit of polish like sound effects at the end.

What I should have done

This is going to cover one thing only.  TESTING!

Because I was enthralled by adding sound effects and adding a controls menu, which I didn’t anticipate to have time to do, I finished right at the end so had no one to test my game in progress. When it was submitted, not only was it full of balancing issues but it was massively ridden in bugs.

Bugs in final (or near final) release:

  • Crashed whenever you went to menu or exited game
  • CTD when you spammed space
  • Some computers couldn’t run it at all until today
  • Crashed if you walked off the map
  • Memory leaks
  • More memory leaks

The “computers couldn’t run it” and “crashed when you went to menu” bugs are fixed now. The crash-on-exit bug was caused by a memory leak in the destructors, and to solve it I removed the destructors which caused more memory leaks. But as it’s a 2 bit game, I didn’t think many people would run out of memory while running it. There was an issue with frametimes which was causing the ultimate unrunnable bug on some computers only, where I thought SFML wasn’t tracking the frametimes correctly and I updated the entire version of SFML before realising today that I had just got the frame time before rendering. Additionally, there are complaints of difficulty, moving to slowly, etc, which I would have tweaked had I actually got people to test the game before submitting. I should probably fix the CTD at some point, because almost everyone who gets more than 100 points suffers from it.

But, overall, I am pleased with the game. So go play it! Comment! After I’m done with my random 20 I shall probably go through the comments and play all your games.

Goodbye!

 

LD24

I’m in! (and no, I didn’t debate about it for this long)

I thought I’d save this post until I’d finished preparing the framework for this LD. It’s slightly different from last time to make it more lightweight and I will be able to entirely understand it, because I actually made it rather than copy pasting from a wiki. Also, -1 abandoned!

I will be livestreaming this ludum dare at http://www.twitch.tv/pighead10 , as well as publishing a timelapse on my youtube channel: http://www.youtube.com/thepighead10

Tools I am using: SFML 2 for everything code related; probably sfxr for sound; Visual Studio 2010 express for code, and my homemade framework (fyi: it’s terrible): https://dl.dropbox.com/u/53835113/LD24FRAMEWORK.zip

<pighead10> !timeleft
23:25:20 | <yaib> LD 24 starts in: 2h 36m
23:25:21 | <LudumDareBot> pighead10: 2 hours, 34 minutes, 30 seconds until Ludum Dare 24 begins

 

I’m going to sleep now (what? In LD? Missing the theme announcement?) so hopefully the theme will be a nice surprise. One that makes cute sounds, and is fluffy, and tastes nice.

Goodbye!

Tags: im in, ld48, livestream, timelapse