Bottoms up! - Follow the development of a game
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Bottoms Coming Up!
Chapter Four: for (unsigned int i(4); i < 5; ++ i)
--------------
The title of this chapter was chosen on the basis of my incredibly simple sense of humour, when it comes to puns. Any other programmer should be able to understand what it's all about, and probably disapprove greatly of my so called humour, and for the rest of you, it is simply quite a clear indication that this chapter will be about the most important part of making a game; the programming. Sure, it doesn't make the game any better, because everything else is just as important when it comes to the quality of the result, but without the programming, none of that will matter, as there would be no game at all. The programming is what assembles everything else, and makes it all come together in the end, and obviously during the process of development as well.
Background
My personal history of programming goes back quite a long way now, even though I'm not very old. I'm close to nineteen years old now, and my interest first began with the creation of websites when I was about eleven. About a year later, I was creating small games using a piece of software called Game Maker. Around that time, the program was at version 6.0, and could be obtained from a website with an obscure address, which I had actually memorised at the time. It then went on to get a domain name reflecting its name, and eventually was moved to http://www.yoyogames.com/, where it is still to be found today, at version 8.1. At that time, Game Maker and RPG Maker were pretty much the only programs of this kind heard of by the greater audience, but today, lots of other projects, such as Construct and Unity 3D.
Game Maker had two interfaces to programming. One was by simply dragging and dropping different types of 'actions' to execute into 'events' that would be invoked at certain times during the game. I quickly came to appreciate the increase in both control and speed that I was able to gain through the other method of programming, which was actually using the built-in scripting language called GML, which was simply short for 'Game Maker Language'. I kept using this for two or perhaps even three years, and got increasingly good at it. At the same time, I was also quite good at another field of programming; using a language called PHP, which is used in a lot of large sites today, I also mastered the art of creating websites at a professional level at an early age. Since then, I have spent less and less time on it, and I probably wouldn't be able to keep up with the latest innovations of today unless I read up a bit on it and learn some new things, but, boy; at the time, I was nothing but awesome.
Because of the latter series of events, there was a time when I strayed further and further from the ambitions of becoming a video game developer, and was more into the idea of entering the field of website development in the future to come, and a few years later, I even fell back into the much older ambitions of directing movies, or editing them, or both. There would come a time where my wills were split up between this dream, and, once again, the dream of developing games, which eventually merged into the latter one, and here I am today.
I didn't settle on this recently, though. This was several years ago, and I have already been traveling the road of overambition that is so typically seen, and quite stereotypical, among young teens first getting onto the road of indie game development. I will, embarrassingly, admit that I, at the age of around fourteen of fifteen, initiated a serious attempt to create an amazing 3D RPG. We can all guess what happened to that poor, immature will, lacking all sense of self-awareness. Since then, I have learned to let things take their time, and have myself taken the time to become aware of my own capabilities, and, more importantly, limitations. It will have to take a long time of experience and learning before I feel that the ambitions of my younger self can finally be realised.
Eventually, I came to start learning the programming language C++, about two years and a half ago, or so, which is a powerful language commonly used in the industry of software; not only for games, as it was created for any purpose, and not tailored for, say, games, unlike something like the GML language of Game Maker. The language is used by many large companies today, and is the core of many programs you probably use on a daily basis, both for work and in your spare time.
Starting work on 'Bottoms Up!'
In the last chapter written by me, I told you about the birth of the game. The first thing to be made, was the bottle, contained in a "room" no bigger than the window within which it was being rendered, as was made clear by one of the screenshots that you could see in that chapter:
I also said that the graphics for the bottle was the first thing created at all, but that was not all I did that day; I actually started writing the first lines of code, too. The first thing I did, was to begin work on some preemptive code to make it easier to set up physical bodies, such as that of the bottle, so that I could start trying out the physics of Box2D (the physics framework that was mentioned in chapter two) as soon as possible.
For this, I created a 'class'. For those of you not aware of the concepts of object-oriented programming, or programming at all, I will try to give you a brief explanation. Essentially, programming is just a way of speaking to the computer, by telling it just what to do, be it single actions such as opening the CD tray or turning itself off, or series of actions, as with pretty much any type of software. When you get into more advanced types of applications, with a lot more to keep track of, things can eventually get untidy and hard to grasp if they were not considered thoroughly enough, and as this is obviously something that programmers and their colleagues and employers would like to avoid, there have been many takes on creating the best way of programming. Object-oriented programming (will be shortened to 'OOP' in the rest of the chapter) is one of these.
The idea is to bring the layout of one's applications as close to reality as possible; just like the real world can be divided into entities, some of which share common traits, or are more or less identical, the desire with OOP is to be able to do the same for applications, which are to be considered as little worlds in their own right. A 'class' would be a template for such an entity of the world. A class defines what an object looks like, and how it works, but doesn't give birth to an actual instance of it, as the class is then supposed to be used in order to create many objects of the same type, as defined in the class. If I'm creating a game that's supposed to contain crates, such as 'Bottoms Up!', I might create a class called 'Crate', and tell it to draw itself using the proper graphics for a crate. I also want my create to react to collisions with other physical bodies, and this is a behaviour already defined in a previously created class, perhaps called 'Body'. As I would like to copy this behaviour into my crate class without copying the actual code for it, I can use something called inheritance, which is just what it sounds like; by defining the physical body class as the 'parent' of the crate class, it can inherit the properties of that parent class, just like I have inherited traits from the DNA of my parents.
So this is what was done for this game. I created a class called 'Body', which inherited the class 'b2Body', provided to me by the Box2D library. I took the functionality of the parent, and baked it into the more comprehensive and simple interface of the child class. I then proceeded to some basic work, such as setting up a window to draw everything into, and then I finally created a class called 'Character', which was to be the template for the bottle and its eventual rider, Charles, which was a child of the Body class. I defined the correct shape of this physical body in order for Box2D to calculate proper physics for it, and then used four rectangular bodies to put walls around the area seen in the above screenshot. In order to try everything out, I allowed the keyboard keys to be used to boost the bottle off into some direction, and soon I would see that bottle of mine bounce off of the walls in quite a realistic fashion.
Tools and frameworks
The aforementioned events were all executed using my MacBook Pro, but I do have another computer running a different operative system called Ubuntu, and I really prefer none of them over the other when it comes to doing work. They're both nice machines, and I'm equally productive using any of them. The main difference in the workflow is that the Mac is exclusively used to create the copies of the game that should run in it's operative system, OS X, while the other computer is used to do this for Linux and Windows. Other than that, I'm quite happy working on any of them.
The Linux computer does contain my favourite program for writing code, though, which is called Code::Blocks (http://www.codeblocks.org/). It contains a lot of nice, intelligent features to speed up the writing right out of the box, and in addition to that, I've added lots and lots of custom commands tailored to my own habits, in order to make everything as fast as possible for myself. Code::Blocks does exist for the Mac as well, but it has one major bug that renders it pretty much useless to me, and so I've had to find other solutions. Xcode, developed by Apple themselves, is a nice environment from which I do all of my compiling, but it doesn't really conform to the ways that I write my code, so for the Mac, I've settled on writing most code in a program called Eclipse (http://www.eclipse.org/), which contains less features than Code::Blocks, but is better than anything else I've been able to find so far. This is only for the computer version, though; for the iOS version I use Xcode exclusively, not only because its Apple's very own, devoted piece of software for the purpose, and so makes it all very easy, but also because I know of no other text editor that's designed for the weird mix of C++ and Apple's main programming language, Objective-C, that I'm using to write the code for this version (commonly called Objective-C++).
Box2D is one of the frameworks that I have mentioned before. It's a library created to perform fairly accurate physics simulations and calculations, which is used for this purpose in 'Bottoms Up!'. Another type of framework that the game depends upon, is a graphics framework to facilitate the task of drawing images to the screen. For the computer version, I'm using a framework called SFML (http://sfml-dev.org/), which is built upon OpenGL (http://www.opengl.org/), which might be a more familiar name to the ears and eyes of those who have no programming experience, as this is the core of the graphics frameworks of many blockbuster games today. SFML is also what handles the playback of the game's music and all of the sounds, and can pull off even more tasks solely devoted to game development. For the iOS version, I'm using another framework, called Cocos2D (http://www.cocos2d-iphone.org/), which is nice in that it takes a lot of weight off of my shoulders when it comes to drawing to the screen, but it is lacking in some features that I need for this game, and the execution is quite slow, which has caused me to hack it a bit in order to optimise and increase speeds; something which has involved pure OpenGL code, as Cocos2D is also based upon this library, or, more specifically, OpenGL ES, which is a subset of OpenGL, primarily intended for portable devices with less power than normal computers.
My final outside dependency is the excellent light-weight library TinyXML (http://www.grinninglizard.com/tinyxml/), which I'm using to load and parse XML files. XML is a file format commonly used to store data, pretty much identical in layout to some languages used for website development, which is thus very familiar and likable to me. This library works perfectly both on computers and iOS, just like Box2D, so the parts related to graphics are pretty much the only ones that I've had to rewrite entirely, while the physics and graphics code has remained mostly intact from the computer version.
Learning
Creating 'Bottoms Up!' has so far been a great experience for me, even though the game still has quite a way to go before it's finished. While the development has been a fairly smooth process, a few hardships have been encountered along the way, but I've eventually managed to solve the issues that have come up, and even though this game might not look extremely advanced to the world, a lot of time and code has been spent on assembling it all, and I feel that I have developed greatly as a programmer during these months, and I have learned a lot of important lessons.
For instance, I used to be extremely pedantic when it came to the layout of my code. As I stated in the last chapter that I wrote, I rewrote the engine of my platformer game three times, slowing progress down over and over, and never really got anywhere. A lot of nice code was written, but still there's almost nothing to show to the world. When it came to 'Bottoms Up!', which wasn't even supposed to be a full game in the first place, I didn't worry as much about layout, and made everything in more of a quick and dirty fashion, without much planning ahead, and this has, on the one hand, increased my productivity and has taken the progress of development quite far in quite a short time, but on the other hand, much of the code is just a mess, that I am in no way proud of, and at times, it has been hard to work with when revisiting or adding to certain sections. It is also quite a tedious process to add new content to the game; something which would have been a lot easier and faster to do if I had just sat down to plan out a good system for it, and had written more code initially, to prepare for future additions.
The moral of the story is that I need to somehow combine this workflow with my old one to create the perfect one for future projects. I'm sure I won't succeed the first time, but I will probably do better than this time, and I'm sure I will learn something new along the way, and this also brings me to another very important lesson learned during this project; it doesn't matter if the code isn't the most beautiful beast that eyes have ever been laid upon, if it's still working out perfectly well. Finish the project anyway. You will learn so much along the way if you dare to face new problems like that, and you will be able to make every new project in the future even better than the last one, and that's just regarding the code; it doesn't mean that the result itself - the actual game, which is what people will take part of in the end, after all - won't be good. Something clearly shown by the fact that I am actually very content and happy with what Erik and I have been able to come up with. I enjoy playing the game myself, and I believe that's quite an essential key element to success. There needs to be joy and pride forged into the sword for it to shine.
Chapter Four: for (unsigned int i(4); i < 5; ++ i)
--------------
The title of this chapter was chosen on the basis of my incredibly simple sense of humour, when it comes to puns. Any other programmer should be able to understand what it's all about, and probably disapprove greatly of my so called humour, and for the rest of you, it is simply quite a clear indication that this chapter will be about the most important part of making a game; the programming. Sure, it doesn't make the game any better, because everything else is just as important when it comes to the quality of the result, but without the programming, none of that will matter, as there would be no game at all. The programming is what assembles everything else, and makes it all come together in the end, and obviously during the process of development as well.
Background
My personal history of programming goes back quite a long way now, even though I'm not very old. I'm close to nineteen years old now, and my interest first began with the creation of websites when I was about eleven. About a year later, I was creating small games using a piece of software called Game Maker. Around that time, the program was at version 6.0, and could be obtained from a website with an obscure address, which I had actually memorised at the time. It then went on to get a domain name reflecting its name, and eventually was moved to http://www.yoyogames.com/, where it is still to be found today, at version 8.1. At that time, Game Maker and RPG Maker were pretty much the only programs of this kind heard of by the greater audience, but today, lots of other projects, such as Construct and Unity 3D.
Game Maker had two interfaces to programming. One was by simply dragging and dropping different types of 'actions' to execute into 'events' that would be invoked at certain times during the game. I quickly came to appreciate the increase in both control and speed that I was able to gain through the other method of programming, which was actually using the built-in scripting language called GML, which was simply short for 'Game Maker Language'. I kept using this for two or perhaps even three years, and got increasingly good at it. At the same time, I was also quite good at another field of programming; using a language called PHP, which is used in a lot of large sites today, I also mastered the art of creating websites at a professional level at an early age. Since then, I have spent less and less time on it, and I probably wouldn't be able to keep up with the latest innovations of today unless I read up a bit on it and learn some new things, but, boy; at the time, I was nothing but awesome.
Because of the latter series of events, there was a time when I strayed further and further from the ambitions of becoming a video game developer, and was more into the idea of entering the field of website development in the future to come, and a few years later, I even fell back into the much older ambitions of directing movies, or editing them, or both. There would come a time where my wills were split up between this dream, and, once again, the dream of developing games, which eventually merged into the latter one, and here I am today.
I didn't settle on this recently, though. This was several years ago, and I have already been traveling the road of overambition that is so typically seen, and quite stereotypical, among young teens first getting onto the road of indie game development. I will, embarrassingly, admit that I, at the age of around fourteen of fifteen, initiated a serious attempt to create an amazing 3D RPG. We can all guess what happened to that poor, immature will, lacking all sense of self-awareness. Since then, I have learned to let things take their time, and have myself taken the time to become aware of my own capabilities, and, more importantly, limitations. It will have to take a long time of experience and learning before I feel that the ambitions of my younger self can finally be realised.
Eventually, I came to start learning the programming language C++, about two years and a half ago, or so, which is a powerful language commonly used in the industry of software; not only for games, as it was created for any purpose, and not tailored for, say, games, unlike something like the GML language of Game Maker. The language is used by many large companies today, and is the core of many programs you probably use on a daily basis, both for work and in your spare time.
Starting work on 'Bottoms Up!'
In the last chapter written by me, I told you about the birth of the game. The first thing to be made, was the bottle, contained in a "room" no bigger than the window within which it was being rendered, as was made clear by one of the screenshots that you could see in that chapter:
I also said that the graphics for the bottle was the first thing created at all, but that was not all I did that day; I actually started writing the first lines of code, too. The first thing I did, was to begin work on some preemptive code to make it easier to set up physical bodies, such as that of the bottle, so that I could start trying out the physics of Box2D (the physics framework that was mentioned in chapter two) as soon as possible.
For this, I created a 'class'. For those of you not aware of the concepts of object-oriented programming, or programming at all, I will try to give you a brief explanation. Essentially, programming is just a way of speaking to the computer, by telling it just what to do, be it single actions such as opening the CD tray or turning itself off, or series of actions, as with pretty much any type of software. When you get into more advanced types of applications, with a lot more to keep track of, things can eventually get untidy and hard to grasp if they were not considered thoroughly enough, and as this is obviously something that programmers and their colleagues and employers would like to avoid, there have been many takes on creating the best way of programming. Object-oriented programming (will be shortened to 'OOP' in the rest of the chapter) is one of these.
The idea is to bring the layout of one's applications as close to reality as possible; just like the real world can be divided into entities, some of which share common traits, or are more or less identical, the desire with OOP is to be able to do the same for applications, which are to be considered as little worlds in their own right. A 'class' would be a template for such an entity of the world. A class defines what an object looks like, and how it works, but doesn't give birth to an actual instance of it, as the class is then supposed to be used in order to create many objects of the same type, as defined in the class. If I'm creating a game that's supposed to contain crates, such as 'Bottoms Up!', I might create a class called 'Crate', and tell it to draw itself using the proper graphics for a crate. I also want my create to react to collisions with other physical bodies, and this is a behaviour already defined in a previously created class, perhaps called 'Body'. As I would like to copy this behaviour into my crate class without copying the actual code for it, I can use something called inheritance, which is just what it sounds like; by defining the physical body class as the 'parent' of the crate class, it can inherit the properties of that parent class, just like I have inherited traits from the DNA of my parents.
So this is what was done for this game. I created a class called 'Body', which inherited the class 'b2Body', provided to me by the Box2D library. I took the functionality of the parent, and baked it into the more comprehensive and simple interface of the child class. I then proceeded to some basic work, such as setting up a window to draw everything into, and then I finally created a class called 'Character', which was to be the template for the bottle and its eventual rider, Charles, which was a child of the Body class. I defined the correct shape of this physical body in order for Box2D to calculate proper physics for it, and then used four rectangular bodies to put walls around the area seen in the above screenshot. In order to try everything out, I allowed the keyboard keys to be used to boost the bottle off into some direction, and soon I would see that bottle of mine bounce off of the walls in quite a realistic fashion.
Tools and frameworks
The aforementioned events were all executed using my MacBook Pro, but I do have another computer running a different operative system called Ubuntu, and I really prefer none of them over the other when it comes to doing work. They're both nice machines, and I'm equally productive using any of them. The main difference in the workflow is that the Mac is exclusively used to create the copies of the game that should run in it's operative system, OS X, while the other computer is used to do this for Linux and Windows. Other than that, I'm quite happy working on any of them.
The Linux computer does contain my favourite program for writing code, though, which is called Code::Blocks (http://www.codeblocks.org/). It contains a lot of nice, intelligent features to speed up the writing right out of the box, and in addition to that, I've added lots and lots of custom commands tailored to my own habits, in order to make everything as fast as possible for myself. Code::Blocks does exist for the Mac as well, but it has one major bug that renders it pretty much useless to me, and so I've had to find other solutions. Xcode, developed by Apple themselves, is a nice environment from which I do all of my compiling, but it doesn't really conform to the ways that I write my code, so for the Mac, I've settled on writing most code in a program called Eclipse (http://www.eclipse.org/), which contains less features than Code::Blocks, but is better than anything else I've been able to find so far. This is only for the computer version, though; for the iOS version I use Xcode exclusively, not only because its Apple's very own, devoted piece of software for the purpose, and so makes it all very easy, but also because I know of no other text editor that's designed for the weird mix of C++ and Apple's main programming language, Objective-C, that I'm using to write the code for this version (commonly called Objective-C++).
Box2D is one of the frameworks that I have mentioned before. It's a library created to perform fairly accurate physics simulations and calculations, which is used for this purpose in 'Bottoms Up!'. Another type of framework that the game depends upon, is a graphics framework to facilitate the task of drawing images to the screen. For the computer version, I'm using a framework called SFML (http://sfml-dev.org/), which is built upon OpenGL (http://www.opengl.org/), which might be a more familiar name to the ears and eyes of those who have no programming experience, as this is the core of the graphics frameworks of many blockbuster games today. SFML is also what handles the playback of the game's music and all of the sounds, and can pull off even more tasks solely devoted to game development. For the iOS version, I'm using another framework, called Cocos2D (http://www.cocos2d-iphone.org/), which is nice in that it takes a lot of weight off of my shoulders when it comes to drawing to the screen, but it is lacking in some features that I need for this game, and the execution is quite slow, which has caused me to hack it a bit in order to optimise and increase speeds; something which has involved pure OpenGL code, as Cocos2D is also based upon this library, or, more specifically, OpenGL ES, which is a subset of OpenGL, primarily intended for portable devices with less power than normal computers.
My final outside dependency is the excellent light-weight library TinyXML (http://www.grinninglizard.com/tinyxml/), which I'm using to load and parse XML files. XML is a file format commonly used to store data, pretty much identical in layout to some languages used for website development, which is thus very familiar and likable to me. This library works perfectly both on computers and iOS, just like Box2D, so the parts related to graphics are pretty much the only ones that I've had to rewrite entirely, while the physics and graphics code has remained mostly intact from the computer version.
Learning
Creating 'Bottoms Up!' has so far been a great experience for me, even though the game still has quite a way to go before it's finished. While the development has been a fairly smooth process, a few hardships have been encountered along the way, but I've eventually managed to solve the issues that have come up, and even though this game might not look extremely advanced to the world, a lot of time and code has been spent on assembling it all, and I feel that I have developed greatly as a programmer during these months, and I have learned a lot of important lessons.
For instance, I used to be extremely pedantic when it came to the layout of my code. As I stated in the last chapter that I wrote, I rewrote the engine of my platformer game three times, slowing progress down over and over, and never really got anywhere. A lot of nice code was written, but still there's almost nothing to show to the world. When it came to 'Bottoms Up!', which wasn't even supposed to be a full game in the first place, I didn't worry as much about layout, and made everything in more of a quick and dirty fashion, without much planning ahead, and this has, on the one hand, increased my productivity and has taken the progress of development quite far in quite a short time, but on the other hand, much of the code is just a mess, that I am in no way proud of, and at times, it has been hard to work with when revisiting or adding to certain sections. It is also quite a tedious process to add new content to the game; something which would have been a lot easier and faster to do if I had just sat down to plan out a good system for it, and had written more code initially, to prepare for future additions.
The moral of the story is that I need to somehow combine this workflow with my old one to create the perfect one for future projects. I'm sure I won't succeed the first time, but I will probably do better than this time, and I'm sure I will learn something new along the way, and this also brings me to another very important lesson learned during this project; it doesn't matter if the code isn't the most beautiful beast that eyes have ever been laid upon, if it's still working out perfectly well. Finish the project anyway. You will learn so much along the way if you dare to face new problems like that, and you will be able to make every new project in the future even better than the last one, and that's just regarding the code; it doesn't mean that the result itself - the actual game, which is what people will take part of in the end, after all - won't be good. Something clearly shown by the fact that I am actually very content and happy with what Erik and I have been able to come up with. I enjoy playing the game myself, and I believe that's quite an essential key element to success. There needs to be joy and pride forged into the sword for it to shine.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
No 'Bottoms Coming Up!' for you today, but a fair amount of updates.
I've done some more work on the iOS optimisations, and I'm currently running the game at about 35 FPS on the iPhone 3G, and, of course, still at 60 FPS on the iPhone 4. Part of the gain was thanks to some more particle tweaking, and I was actually able to bring the transparency support back without much of a loss, yielding some nicer particles without any catch. I made the foam look nicer in general, but I'm still not entirely happy with it, as it is looking so very slick in the computer version, and I want to stay as true to this as I possibly can.
It seemed that my implementation of the pinching gesture to zoom was inverted compared to the way the gesture is used in other applications, so I fixed that up; it was only a matter of swapping a plus operator for a minus operator, after all. Another fix regarding this feature was the removal of the bugged lagginess that it had, which was caused by the fact that the iOS SDK, for some reason, gives me the handles to the position of each finger in a seemingly random order each time. I decided to store the pointers manually as soon as I detect that two fingers are touching the screen, to be able to refer back to those every time I check for a difference in their distance from each other.
I also updated the editor a little, by replacing the temporary image for the statue tool, making it actually depict a statue, rather than an icicle.
I also added hotkeys for changing the type of statue in the editing mode; the number keys. These keys were also assigned as hotkeys for flipping between the pages of the tool list in the selection mode.
Another important addition to the editor was to make it reassign any invalid level indices upon loading them. This is nothing that the user will really be able to notice, but if, for instance, a level file is pasted from elsewhere into the folder of saved levels of the editor, that has an index that is the same as that of another level, or if the index isn't the number immediately following the that of the previous level, the indices of the levels involved will be altered and written over in order to avoid any trouble, to make all of this as easy as possible for any future users who wish to paste a bunch of levels made by someone else or on a different computer into the editor directory of their own computer.
Finally, I finished up the graphics for the message notification system, to have them conform to the style of the rest of the game. I used the same graphics that were temporarily used before, but edited them in order to achieve this result.
CHANGELOG:
-----------------
2011-06-14:
* Found out that even though the game was paused, if the bottle was within the wind stream of a fan, the fan would keep boosting, and when the game was unpaused again, all of that built up force would be unleashed to boost the bottle off at a huge speed. I fixed this.
* Noticed a bug in the snow particle system of the menu when returning to it from the game, which soon appeared to have been caused by the recent addition for smoother flow. Got rid of this bug.
2011-06-15:
* Changed the layer ordering of statues; they now go in layer five, along with chimneys and fans, rather than layer three, with icicles and crates.
2011-06-19:
* Removed the code specifying that Charles himself should not have his collision checked against the goal. For some reason, I had previously decided that only the bottle should be able to detect collisions with the goal.
* In the demo, the loading bar stays at 0 % for a while and then goes straight to 100 %, when loading levels. I fixed this.
* Made the image with the fakey particles for the iOS version about 30 % smaller, to make it look better, which it now does. I also decreased the particle spawn factor from 30 to 27, and I actually increased the FPS by 2; it's now running at 36 FPS.
* Inverted the pinching gestures to reflect the standard used by most applications. It's still bugged, though.
* Fixed the aforementioned bugginess of the pinch gesture, which is now working perfectly. The reason was that the SDK returns the pinch handles in a random order every time, so I simply stored the pointer for later access myself.
* Tried to put opacity support back into the particles, and as I only dropped about a single frame per second, I'm going to keep it. It looks better.
* Added a per-particle weight property to the particle system, defining how much each individual particle should be influenced by the gravity of the particle system, in order to make the weight of the foam dynamic, so that I can have them fall quicker when the bottle is at a low velocity, and the other way around. This way, particles appear to have a longer lifetime than they do, increasing density and beauty of the particle system without any FPS lost. I also scaled up the foam particle graphics a bit to help achieve this, and it actually looked better.
* Checked a point off of my list by making the editor overwrite the indices of the levels when loading them, to make sure that all levels appear in order and no indices are the same or further than one from the previous one. This way, any new levels can be can be copied into the folder of saved levels of the editor to become loadable without any problems.
* Added an image depicting an actual statue to the corresponding tool in the editor, and also made it possible to change the statue type using the number keys in the editing mode.
* Made it possible to flip through the pages of the list of tools in selection mode.
* Created the final graphics for the information dialogues.
I've done some more work on the iOS optimisations, and I'm currently running the game at about 35 FPS on the iPhone 3G, and, of course, still at 60 FPS on the iPhone 4. Part of the gain was thanks to some more particle tweaking, and I was actually able to bring the transparency support back without much of a loss, yielding some nicer particles without any catch. I made the foam look nicer in general, but I'm still not entirely happy with it, as it is looking so very slick in the computer version, and I want to stay as true to this as I possibly can.
It seemed that my implementation of the pinching gesture to zoom was inverted compared to the way the gesture is used in other applications, so I fixed that up; it was only a matter of swapping a plus operator for a minus operator, after all. Another fix regarding this feature was the removal of the bugged lagginess that it had, which was caused by the fact that the iOS SDK, for some reason, gives me the handles to the position of each finger in a seemingly random order each time. I decided to store the pointers manually as soon as I detect that two fingers are touching the screen, to be able to refer back to those every time I check for a difference in their distance from each other.
I also updated the editor a little, by replacing the temporary image for the statue tool, making it actually depict a statue, rather than an icicle.
I also added hotkeys for changing the type of statue in the editing mode; the number keys. These keys were also assigned as hotkeys for flipping between the pages of the tool list in the selection mode.
Another important addition to the editor was to make it reassign any invalid level indices upon loading them. This is nothing that the user will really be able to notice, but if, for instance, a level file is pasted from elsewhere into the folder of saved levels of the editor, that has an index that is the same as that of another level, or if the index isn't the number immediately following the that of the previous level, the indices of the levels involved will be altered and written over in order to avoid any trouble, to make all of this as easy as possible for any future users who wish to paste a bunch of levels made by someone else or on a different computer into the editor directory of their own computer.
Finally, I finished up the graphics for the message notification system, to have them conform to the style of the rest of the game. I used the same graphics that were temporarily used before, but edited them in order to achieve this result.
CHANGELOG:
-----------------
2011-06-14:
* Found out that even though the game was paused, if the bottle was within the wind stream of a fan, the fan would keep boosting, and when the game was unpaused again, all of that built up force would be unleashed to boost the bottle off at a huge speed. I fixed this.
* Noticed a bug in the snow particle system of the menu when returning to it from the game, which soon appeared to have been caused by the recent addition for smoother flow. Got rid of this bug.
2011-06-15:
* Changed the layer ordering of statues; they now go in layer five, along with chimneys and fans, rather than layer three, with icicles and crates.
2011-06-19:
* Removed the code specifying that Charles himself should not have his collision checked against the goal. For some reason, I had previously decided that only the bottle should be able to detect collisions with the goal.
* In the demo, the loading bar stays at 0 % for a while and then goes straight to 100 %, when loading levels. I fixed this.
* Made the image with the fakey particles for the iOS version about 30 % smaller, to make it look better, which it now does. I also decreased the particle spawn factor from 30 to 27, and I actually increased the FPS by 2; it's now running at 36 FPS.
* Inverted the pinching gestures to reflect the standard used by most applications. It's still bugged, though.
* Fixed the aforementioned bugginess of the pinch gesture, which is now working perfectly. The reason was that the SDK returns the pinch handles in a random order every time, so I simply stored the pointer for later access myself.
* Tried to put opacity support back into the particles, and as I only dropped about a single frame per second, I'm going to keep it. It looks better.
* Added a per-particle weight property to the particle system, defining how much each individual particle should be influenced by the gravity of the particle system, in order to make the weight of the foam dynamic, so that I can have them fall quicker when the bottle is at a low velocity, and the other way around. This way, particles appear to have a longer lifetime than they do, increasing density and beauty of the particle system without any FPS lost. I also scaled up the foam particle graphics a bit to help achieve this, and it actually looked better.
* Checked a point off of my list by making the editor overwrite the indices of the levels when loading them, to make sure that all levels appear in order and no indices are the same or further than one from the previous one. This way, any new levels can be can be copied into the folder of saved levels of the editor to become loadable without any problems.
* Added an image depicting an actual statue to the corresponding tool in the editor, and also made it possible to change the statue type using the number keys in the editing mode.
* Made it possible to flip through the pages of the list of tools in selection mode.
* Created the final graphics for the information dialogues.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
More than the occasional bug fixing, I haven't had the time for too much work during the past few days, but at least something has been done.
I spent some time on increasing the functionality of my little wrapper around the physical capabilities given to me by Box2D, in order to make a new type of item possible; swings. Playground swings.
They're an obstacle, and the idea is for the player to have to time the passage correctly in order not to get hit by the swings and lose all of the speed. The graphics are still temporary.
They're moving in opposite directions, of course.
CHANGELOG:
-----------------
2011-06-19:
* Changed the 'File name:' label in the editor to 'File:' to make up more space to fit longer file names or level titles.
2011-06-21 - 2011-06-22:
* Fixed a bug occurring when moving statues in the editor; only the statues themselves would actually follow along with the mouse, leaving the pedestals untouched and thus unmovable. As the solution was the same as for scaffoldings, which once had the same problem, I decided to create a common interface for them both to inherit, which I might also have use for in the future.
* Added support for joints to the wrapper class for physical bodies, both for the iOS version and the computer version.
2011-06-22:
* Added to the joint functionality in order to make everything work out.
* Hacked into to Box2D to make a convenient change; I added an empty, virtual declaration of the initialisation function used by some of the subclasses of b2JointDef to the parent class, so that I wouldn't have to cast any joint definitions wanting to make use of this function. I wanted to be able to take advantage of the power of polymorphism, so I made this possible.
* Created playground swings connected to their poles through revolute joints. They always appear in sets of two swings on one pole, which rock constantly in opposite directions. The point is to avoid the obstacle by finding an opening when the swings are far from each other. The graphics are temporary so far, and there is no tool for this in the editor yet.
I spent some time on increasing the functionality of my little wrapper around the physical capabilities given to me by Box2D, in order to make a new type of item possible; swings. Playground swings.
They're an obstacle, and the idea is for the player to have to time the passage correctly in order not to get hit by the swings and lose all of the speed. The graphics are still temporary.
They're moving in opposite directions, of course.
CHANGELOG:
-----------------
2011-06-19:
* Changed the 'File name:' label in the editor to 'File:' to make up more space to fit longer file names or level titles.
2011-06-21 - 2011-06-22:
* Fixed a bug occurring when moving statues in the editor; only the statues themselves would actually follow along with the mouse, leaving the pedestals untouched and thus unmovable. As the solution was the same as for scaffoldings, which once had the same problem, I decided to create a common interface for them both to inherit, which I might also have use for in the future.
* Added support for joints to the wrapper class for physical bodies, both for the iOS version and the computer version.
2011-06-22:
* Added to the joint functionality in order to make everything work out.
* Hacked into to Box2D to make a convenient change; I added an empty, virtual declaration of the initialisation function used by some of the subclasses of b2JointDef to the parent class, so that I wouldn't have to cast any joint definitions wanting to make use of this function. I wanted to be able to take advantage of the power of polymorphism, so I made this possible.
* Created playground swings connected to their poles through revolute joints. They always appear in sets of two swings on one pole, which rock constantly in opposite directions. The point is to avoid the obstacle by finding an opening when the swings are far from each other. The graphics are temporary so far, and there is no tool for this in the editor yet.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Since I wasn't able to work for two or three days during the beginning of this week, and since I've gotten sick, resulting in a lot of sleep, not much has been done this week, but I feel like I'm stacking it up for a less and less interesting post, farther into the future, if I don't write an update now.
Anyway, one of the things to have been created, is the tool for swings in the editor. There are no more settings than where to place it. Then Erik created creaking sounds for these, which I incorporated into the game, dynamically, so that when the swings rock, they will creak, but not when they've lost their momentum, which could happen if the player crashes into them.
Let us not forget some fan service! Oh, I've made a fantastic job at making those fans look a bit fancier, and it was quite fun. Almost as much fun as this pun.
I also finally got around to replacing the arrow on the goal sign with a text just saying 'GOAL', so as to avoid confusion for players who might think that the arrow is an indication of the direction of the goal, rather than the goal itself.
A new, larger addition was made, both to the iOS version and to the computer version, in the form of support for animated images; previously, all images have been static, and just rotated, scaled and so on, at runtime, and particles have been used for smoke, foam, wind and falling snow.
The main reason for the addition of animated images is that the particles are slower on iOS, and I want to replace the chimney smoke and the fan wind with animated images, which should be helpful. I have already done this for the wind, and it looks good enough. I'm working on the smoke, but I haven't been able to create a completely seamlessly repeating animation yet. There is some more tweaking to be done.
Other than that, though, I hope that I can make the whole imagery of the game a little more interesting by adding some animation here and there. Presumably a little animation to have Charles blink every once in a while, for example.
I've also requested a bunch of sounds from Erik, so I'm hoping for those to get done and sent to me soon enough. My requests mainly include effects related to the statues and their behaviour, such as having a sound for the globe statue rolling in the snow.
CHANGELOG:
-----------------
2011-06-23:
* Updated the graphics for the fans.
* Updated the graphics for the goals, making them say 'GOAL' rather than having a potentially misleading arrow.
* Added a tool for the creation of swings to the editor.
* Erik created sounds for the swings. I edited them a little, and then he finalised the product with better quality, and I programmed the swings to creak as they rock. This is completely dynamical, and if the bottle were to jam them up so that they can't move, they won't make any creaking, so such ugly moments will be avoided.
* Lowered the volume of the sounds played when winning or losing a bit.
2011-06-24 - 2011-06-25:
* Fixed a bug where statues would not appear at the correct position when playtesting a level after having been moved in the editor. This was weird, because this happened because of the fact that I, for some reason, actually had written the code to do this. This might have been to prevent some other bug that might come back to bite me later. We'll see.
2011-06-28 - 2011-06-29:
* Created a class for animated images. I have not ported it to iOS yet.
2011-06-30 - 2011-07-01:
* Ported the class for animated images to iOS. I'm using the setTextureRect message of the CCSprite class in order to clip the image properly, to display the correct frame.
* Expanded the sprite sheet functionality for animation to support not only columns of frames, but also rows, since textures easily got too large to load.
* Created the animated image for the fans' windstreams, and replaced the particle systems with these, for the iOS version.
2011-07-01:
* Made the animated image a static pointer shared between each fan instance instead, so that I don't have to calculate the frames and everything more than necessary; having all streams always at the same point in the animation is no problem.
Anyway, one of the things to have been created, is the tool for swings in the editor. There are no more settings than where to place it. Then Erik created creaking sounds for these, which I incorporated into the game, dynamically, so that when the swings rock, they will creak, but not when they've lost their momentum, which could happen if the player crashes into them.
Let us not forget some fan service! Oh, I've made a fantastic job at making those fans look a bit fancier, and it was quite fun. Almost as much fun as this pun.
I also finally got around to replacing the arrow on the goal sign with a text just saying 'GOAL', so as to avoid confusion for players who might think that the arrow is an indication of the direction of the goal, rather than the goal itself.
A new, larger addition was made, both to the iOS version and to the computer version, in the form of support for animated images; previously, all images have been static, and just rotated, scaled and so on, at runtime, and particles have been used for smoke, foam, wind and falling snow.
The main reason for the addition of animated images is that the particles are slower on iOS, and I want to replace the chimney smoke and the fan wind with animated images, which should be helpful. I have already done this for the wind, and it looks good enough. I'm working on the smoke, but I haven't been able to create a completely seamlessly repeating animation yet. There is some more tweaking to be done.
Other than that, though, I hope that I can make the whole imagery of the game a little more interesting by adding some animation here and there. Presumably a little animation to have Charles blink every once in a while, for example.
I've also requested a bunch of sounds from Erik, so I'm hoping for those to get done and sent to me soon enough. My requests mainly include effects related to the statues and their behaviour, such as having a sound for the globe statue rolling in the snow.
CHANGELOG:
-----------------
2011-06-23:
* Updated the graphics for the fans.
* Updated the graphics for the goals, making them say 'GOAL' rather than having a potentially misleading arrow.
* Added a tool for the creation of swings to the editor.
* Erik created sounds for the swings. I edited them a little, and then he finalised the product with better quality, and I programmed the swings to creak as they rock. This is completely dynamical, and if the bottle were to jam them up so that they can't move, they won't make any creaking, so such ugly moments will be avoided.
* Lowered the volume of the sounds played when winning or losing a bit.
2011-06-24 - 2011-06-25:
* Fixed a bug where statues would not appear at the correct position when playtesting a level after having been moved in the editor. This was weird, because this happened because of the fact that I, for some reason, actually had written the code to do this. This might have been to prevent some other bug that might come back to bite me later. We'll see.
2011-06-28 - 2011-06-29:
* Created a class for animated images. I have not ported it to iOS yet.
2011-06-30 - 2011-07-01:
* Ported the class for animated images to iOS. I'm using the setTextureRect message of the CCSprite class in order to clip the image properly, to display the correct frame.
* Expanded the sprite sheet functionality for animation to support not only columns of frames, but also rows, since textures easily got too large to load.
* Created the animated image for the fans' windstreams, and replaced the particle systems with these, for the iOS version.
2011-07-01:
* Made the animated image a static pointer shared between each fan instance instead, so that I don't have to calculate the frames and everything more than necessary; having all streams always at the same point in the animation is no problem.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
This week, the updates have also been compiled in the form of a video log!
http://www.youtube.com/watch?v=2PIm45bM0_s&hd=1
The updates will also follow as regular text below, with some images not shown specifically in the video.
It has been a week, but I welcome you back to a new update. Time to run through the most interesting parts of the change log, and put the rest at the bottom once again.
I've been working a little bit on the smoke animation, making it a tiny tad more satisfying, but there's still to be done. Recorded this to show the current progress off the other day:
http://www.youtube.com/watch?v=vgRjK1GEsEM
It still doesn't repeat completely seemlessly, but it's good enough for temporary graphics, so I'll return to this some other time. The clip wasn't uploaded to the official channel, since it was so puny.
An exciting part of this week was to finish up the final graphics for the swings, so that their temporary graphics could be thrown out the window! This is the new stuff:
Pole and swing:
Screenshots:
The editor got a little update too, in the light of this, and a proper icon was added to the swing tool:
I fed my laziness a bit, by adding some more hotkeys to the editor. It is now possible to flip through the pages of the toolbox using the shift key and the number keys 1 - 9 (I doubt there will be more than nine pages), and since every page contains nine tools at the most, the same can be done to flip through the tools on the current page, if the shift key is _not_ held down. The up and down arrow keys can also be used to flip through the pages, in a wrapping fashion.
The most exciting part of this week was getting myself an iPad 2, though! The iPhone version worked perfectly right away, when compiled for that machine instead, using a larger viewport, with everything working just like before. It initially looked like this:
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
Don't mind the smoke in the top-left corner; I was simply testing out the animation functionality.
After a little tweaking, I got the original graphics from the computer version to display instead:
So here it is, one happy iFamily:
iPad 2, MacBook Pro, iPhone 4 and iPhone 3G. Let's not forget that the game also runs on Windows and Linux, though!
CHANGELOG:
-----------------
2011-07-02:
* I am temporarily satisfied with the smoke animation. It looks better at 18 FPS than 30, and it looks better on an actual unit than the simulator, because of the smaller screen. I'll stick to it for now, at least.
2011-07-03:
* Finished up the graphics for the swings.
* I remembered why I had disabled Charles as a collision checker for the goal, having only the bottle itself receptive; since Charles can extend through things, even though he looks flat, the collision body still has the same size, and that makes it possible to reach a goal on the top of a scaffolding from below, for example, without having actually reached the goal. To prevent this kind of cheating, I decided to disable this again.
* Noticed that swings were incorrectly positioned when saved to level files, so I fixed this.
* Added a proper icon to the swing tool in the editor, actually depicting a pair of swings.
* Moved the vertical position of the cursor in a textfield up two pixels.
* Made it possible to use the number keys 1 - 9, when holding shift, to select the item with the corresponding number on the current page in the toolbox interface of the editor.
2011-07-04:
* Swapped the behaviour of the aforementioned addition of hotkeys, so that shift is held to swap between pages instead, and is not, when selecting tools. I also made it possible to use the up and down arrow keys to browse pages in a wrapping fashion.
2011-07-06 - 2011-07-07:
* Got myself an iPad 2 yesterday, and today, I tried putting the game on it, and it is working out just the way I had intended. Nothing is scaled; instead the viewport is larger, and the GUI remains in place, even when zooming, which is working out perfectly fine, just as the arrow can reach the entire screen, while the increased resolution does not allow one to shoot farther than on the iPhone. The graphics need to be changed into the full-size graphics of the computer version, though. It will be beautiful.
* For some reason, which I am still unsure of, despite having fixed the problem, the application will crash every time I ever run it if I force quit it even once. The only solution was to reinstall the entire thing, with the same result if I would force quit. I solved this, amazingly, by changing the deployment target of the project from iOS 4.3 to iOS 4.2…
* Made the iPad version use the original HD graphics of the computer version, while the iPhone version still uses the scaled down graphics. This has not been changed for particles yet, though.
* Put the original particle system back into the fans for the iPad version, and brought the foam system closer to the original one, but not entirely. It still needs a bit of tweaking, though.
* Noticed how the generation of stars wasn't completely random; it was random, but always the same, since I always set the same seed. I didn't even get any big stars, because I always got too big random numbers. I changed the seed to the system time, and I increased the threshold for big stars a bit. I also made the iPad version generate three times as many stars as the iPhone version.
* Increased the density of the falling snow on the iPad to conform to the computer version.
* My solution to check whether I'm running on the iPad, using the preprocessor definition UI_USER_INTERFACE_IDIOM, of Cocoa, did not work when compiling for the older 3.1.3 SDK of my iPhone 3G; I solved this by simply checking whether it is defined at all, and if it is not, well, I'm running on an iPhone. I don't know if I need to be more specific in the future.
* Noticed how windows on the right sides of the houses were too far to the left. Fixed this.
http://www.youtube.com/watch?v=2PIm45bM0_s&hd=1
The updates will also follow as regular text below, with some images not shown specifically in the video.
It has been a week, but I welcome you back to a new update. Time to run through the most interesting parts of the change log, and put the rest at the bottom once again.
I've been working a little bit on the smoke animation, making it a tiny tad more satisfying, but there's still to be done. Recorded this to show the current progress off the other day:
http://www.youtube.com/watch?v=vgRjK1GEsEM
It still doesn't repeat completely seemlessly, but it's good enough for temporary graphics, so I'll return to this some other time. The clip wasn't uploaded to the official channel, since it was so puny.
An exciting part of this week was to finish up the final graphics for the swings, so that their temporary graphics could be thrown out the window! This is the new stuff:
Pole and swing:
Screenshots:
The editor got a little update too, in the light of this, and a proper icon was added to the swing tool:
I fed my laziness a bit, by adding some more hotkeys to the editor. It is now possible to flip through the pages of the toolbox using the shift key and the number keys 1 - 9 (I doubt there will be more than nine pages), and since every page contains nine tools at the most, the same can be done to flip through the tools on the current page, if the shift key is _not_ held down. The up and down arrow keys can also be used to flip through the pages, in a wrapping fashion.
The most exciting part of this week was getting myself an iPad 2, though! The iPhone version worked perfectly right away, when compiled for that machine instead, using a larger viewport, with everything working just like before. It initially looked like this:
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
http://i1181.photobucket.com/albums/x43 ... _Liten.jpg
Don't mind the smoke in the top-left corner; I was simply testing out the animation functionality.
After a little tweaking, I got the original graphics from the computer version to display instead:
So here it is, one happy iFamily:
iPad 2, MacBook Pro, iPhone 4 and iPhone 3G. Let's not forget that the game also runs on Windows and Linux, though!
CHANGELOG:
-----------------
2011-07-02:
* I am temporarily satisfied with the smoke animation. It looks better at 18 FPS than 30, and it looks better on an actual unit than the simulator, because of the smaller screen. I'll stick to it for now, at least.
2011-07-03:
* Finished up the graphics for the swings.
* I remembered why I had disabled Charles as a collision checker for the goal, having only the bottle itself receptive; since Charles can extend through things, even though he looks flat, the collision body still has the same size, and that makes it possible to reach a goal on the top of a scaffolding from below, for example, without having actually reached the goal. To prevent this kind of cheating, I decided to disable this again.
* Noticed that swings were incorrectly positioned when saved to level files, so I fixed this.
* Added a proper icon to the swing tool in the editor, actually depicting a pair of swings.
* Moved the vertical position of the cursor in a textfield up two pixels.
* Made it possible to use the number keys 1 - 9, when holding shift, to select the item with the corresponding number on the current page in the toolbox interface of the editor.
2011-07-04:
* Swapped the behaviour of the aforementioned addition of hotkeys, so that shift is held to swap between pages instead, and is not, when selecting tools. I also made it possible to use the up and down arrow keys to browse pages in a wrapping fashion.
2011-07-06 - 2011-07-07:
* Got myself an iPad 2 yesterday, and today, I tried putting the game on it, and it is working out just the way I had intended. Nothing is scaled; instead the viewport is larger, and the GUI remains in place, even when zooming, which is working out perfectly fine, just as the arrow can reach the entire screen, while the increased resolution does not allow one to shoot farther than on the iPhone. The graphics need to be changed into the full-size graphics of the computer version, though. It will be beautiful.
* For some reason, which I am still unsure of, despite having fixed the problem, the application will crash every time I ever run it if I force quit it even once. The only solution was to reinstall the entire thing, with the same result if I would force quit. I solved this, amazingly, by changing the deployment target of the project from iOS 4.3 to iOS 4.2…
* Made the iPad version use the original HD graphics of the computer version, while the iPhone version still uses the scaled down graphics. This has not been changed for particles yet, though.
* Put the original particle system back into the fans for the iPad version, and brought the foam system closer to the original one, but not entirely. It still needs a bit of tweaking, though.
* Noticed how the generation of stars wasn't completely random; it was random, but always the same, since I always set the same seed. I didn't even get any big stars, because I always got too big random numbers. I changed the seed to the system time, and I increased the threshold for big stars a bit. I also made the iPad version generate three times as many stars as the iPhone version.
* Increased the density of the falling snow on the iPad to conform to the computer version.
* My solution to check whether I'm running on the iPad, using the preprocessor definition UI_USER_INTERFACE_IDIOM, of Cocoa, did not work when compiling for the older 3.1.3 SDK of my iPhone 3G; I solved this by simply checking whether it is defined at all, and if it is not, well, I'm running on an iPhone. I don't know if I need to be more specific in the future.
* Noticed how windows on the right sides of the houses were too far to the left. Fixed this.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
It's all video updates this week! Welcome to an HD experience spanning over twenty minutes of developing and playing around!
http://www.youtube.com/watch?v=AWRvDBc2HdI&hd=1
http://www.youtube.com/watch?v=1ymwenyFP8o&hd=1
CHANGELOG:
-----------------
2011-07-09 - 2011-07-10:
* Tried the game on Erik's first generation iPad; about 30-40 FPS. Seems to be enough.
* Made sure that icicles could be of variable size by enabling transforms for the image.
* Fixed up the scaffoldings; apparently, they didn't look exactly like on PC on iOS.
* Tuned up the physics quality a bit for iPad, but not for iPhone/iPod Touch.
* Made the iOS sky darker to match up with the computer version, but I'm still not entirely satisfied.
* Updated the code for the moon, to make its positioning work more seamlessly when swapping resolutions, and between different devices.
* Made the foam a bit more dense on the iPad. I think it looks better.
2011-07-10 - 2011-07-11:
* Fixed up the HD images of scaffoldings without poles for the iPad.
* Made shooting on iPad and iPhone match up with the computer. Almost.
* Added invisible winds at the top of the levels, to prevent players from getting out of the level, by blowing them back into it. Only for computer so far.
2011-07-11:
* The same is now done for the iOS. Started on the messaging system for the iPad, and got it displaying nicely, which involved setting boundaries for the label containing the main text, so that it would wrap the way I wanted it to.
2011-07-12:
* Prevented pinching from working if more than two fingers are touching the screen.
* Made it possible to pause and unpause the game by touching the screen with three fingers.
* Redid the touch system to get rid of bugs.
* Decided to let what was really a bug stay, where the game will get paused when four fingers are used to leave for the home screen; I supported this behaviour by intentionally making the game pause itself when the home button is pressed. This way, when the player gets back to the game, he won't get thrown right back into the action and lose time.
* Fixed a bug where corks would be drawn at the bottom of the screen when shot, instead of at the top, by the circles from which they were shot.
* Added support for buttons that can be pressed with a finger.
* Ported the recently created messaging system to iOS. To do this, I had to find out how to get access to modifying files. It seems files that can be modified have to appear in a directory called Documents, in the main directory, which I make sure to programmatically find in order to create the file the first time the game runs, which enables me to overwrite it later on.
* Got the messaging system into the iPhone as well, using the same graphics, without scaling them, for easy readability, since they just about fit.
2011-07-13 - 2011-07-14:
* Got button text displaying correctly.
* Ported the pause screen to iOS, so that the screen gets a dark overlay when paused, and the three buttons sayings 'Continue', 'Restart level' and 'Exit level' were added. Both 'Continue' and another three-finger tap can be used to unpause the game.
* Got the 'Restart level' button working. This involved some rewriting of/adding to some subsystems, and finding a bunch of bugs and getting rid of segmentation faults. A few bibugs were removed as well.
* Fixed a bug where the dark overlay of the pause screen would appear somewhere on the screen when displaying messages.
2011-07-14 - 2011-07-15:
* Created a sound loader to be able to load and access sounds in the same way as I do it for graphics.
* Added the sound for the bottle hitting certain objects.
2011-07-15:
* Added one of the two sounds for shooting that Erik has remade so far.
http://www.youtube.com/watch?v=AWRvDBc2HdI&hd=1
http://www.youtube.com/watch?v=1ymwenyFP8o&hd=1
CHANGELOG:
-----------------
2011-07-09 - 2011-07-10:
* Tried the game on Erik's first generation iPad; about 30-40 FPS. Seems to be enough.
* Made sure that icicles could be of variable size by enabling transforms for the image.
* Fixed up the scaffoldings; apparently, they didn't look exactly like on PC on iOS.
* Tuned up the physics quality a bit for iPad, but not for iPhone/iPod Touch.
* Made the iOS sky darker to match up with the computer version, but I'm still not entirely satisfied.
* Updated the code for the moon, to make its positioning work more seamlessly when swapping resolutions, and between different devices.
* Made the foam a bit more dense on the iPad. I think it looks better.
2011-07-10 - 2011-07-11:
* Fixed up the HD images of scaffoldings without poles for the iPad.
* Made shooting on iPad and iPhone match up with the computer. Almost.
* Added invisible winds at the top of the levels, to prevent players from getting out of the level, by blowing them back into it. Only for computer so far.
2011-07-11:
* The same is now done for the iOS. Started on the messaging system for the iPad, and got it displaying nicely, which involved setting boundaries for the label containing the main text, so that it would wrap the way I wanted it to.
2011-07-12:
* Prevented pinching from working if more than two fingers are touching the screen.
* Made it possible to pause and unpause the game by touching the screen with three fingers.
* Redid the touch system to get rid of bugs.
* Decided to let what was really a bug stay, where the game will get paused when four fingers are used to leave for the home screen; I supported this behaviour by intentionally making the game pause itself when the home button is pressed. This way, when the player gets back to the game, he won't get thrown right back into the action and lose time.
* Fixed a bug where corks would be drawn at the bottom of the screen when shot, instead of at the top, by the circles from which they were shot.
* Added support for buttons that can be pressed with a finger.
* Ported the recently created messaging system to iOS. To do this, I had to find out how to get access to modifying files. It seems files that can be modified have to appear in a directory called Documents, in the main directory, which I make sure to programmatically find in order to create the file the first time the game runs, which enables me to overwrite it later on.
* Got the messaging system into the iPhone as well, using the same graphics, without scaling them, for easy readability, since they just about fit.
2011-07-13 - 2011-07-14:
* Got button text displaying correctly.
* Ported the pause screen to iOS, so that the screen gets a dark overlay when paused, and the three buttons sayings 'Continue', 'Restart level' and 'Exit level' were added. Both 'Continue' and another three-finger tap can be used to unpause the game.
* Got the 'Restart level' button working. This involved some rewriting of/adding to some subsystems, and finding a bunch of bugs and getting rid of segmentation faults. A few bibugs were removed as well.
* Fixed a bug where the dark overlay of the pause screen would appear somewhere on the screen when displaying messages.
2011-07-14 - 2011-07-15:
* Created a sound loader to be able to load and access sounds in the same way as I do it for graphics.
* Added the sound for the bottle hitting certain objects.
2011-07-15:
* Added one of the two sounds for shooting that Erik has remade so far.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
I am home from Iceland! Above is a nice, little picture of the plane's menu; not only does it depict a bottle of champagne, but it does so using the Icelandic word for champagne, which is 'kampavín'. When I first started working on the game, I named the folder and the project files using this name, and I believe that even the old demo for Mac still uses 'kampaviinXcode' as its title, because I had forgotten to change it. This is still the name of the folders and project files.
Now, forgive me. The trip to Iceland was purely a vacation, and other than wearing my 'Bottoms Up!' T-shirt, I didn't do anything related to the game or the work on it.
I'm home now, though, like I said, and I have been for a few days, but I had some social life to catch up with as well, of course, after quite some absence, first spending a week with Erik in Valdemarsvik, and then a week in Reykjavík (see what I did there?).
Today, I finally had the time to sit down for work again, other than making a small update on the train the other day, by adding a button for restarting a level also after beating it, but it wasn't mainly work on the game that took up my time today, but more company related stuff.
I've said it before. Erik and I run an officially registered company, for the development of 'Bottoms Up!' and any upcoming titles after that; 'Royal Railway'. So far, though, we're obviously not earning any money, since there is no game out there yet. If we decide to set up some page for donations, we'd obviously be very thankful for any money raised for our work.
Something more than that may be needed, though, and I've spent quite some time today looking for funding opportunities, but haven't found anything that would fit perfectly yet. I may have to contact some of these companies in order to find out more. I've also been looking into information about ourselves and our œconomy that would be of interest for a budget.
Finally, a friend of ours, suggested that it could be possible to check out the opportunities for hiring some, so called, 'incubator' space, which would be some office space among other companies that have done the same thing, for a ridiculously low price. We'd have somewhere to go every day, and this could also possibly increase the probability of getting some funding.
The little actual work on the game today involved research and planning, and a puny piece of hand-written code on a paper, to get my initial ideas down. I've returned to the task of trying to find a proper networking solution for uploading and downloading levels, and I have an idea that may work out now, which I've been looking into a bit, and will be looking further into.
After that, it's time to set up a little plan and make a new schedule with some time limits, so that I can also get this part of the project done.
It's good to be back! Here's a pathetic changelog for you.
CHANGELOG:
-----------------
2011-07-29:
* Added a button for restarting the level even after winning, in case a new record is desired.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Today, I'm back to tell you all about my ideas for the networking service of 'Bottoms Up!', after having discussed it all with Erik.
A price tag will be put on the PC version of the game as well. A puny one, but still something - after all, this is the only version that comes with the editor, and all of a sudden, this obviously means that it's more attractive than the iOS version for many people, since portability wouldn't necessarily be the nicest part of this all, anymore.
We have already been discussing the idea of adding achievements to unlock, and so we will. Another idea that was brought forth, was that of collecting different hats to put on Charles's head. This will be done, too.
More unlockables will be available, though, because of several additions. Those of you, who have played the demo, know that the next level is unlocked by clearing the one before it. This will be extended. We obviously want to make the surroundings a bit greater in variation, and so, we will divide the game into several worlds.
I don't want to reveal them now, since some of them will be hidden until they are unlocked, but this means that the button that says 'Play' in the main menu won't lead directly into the level selection anymore, but into the world selection, which will have large, nice pictures representing each world. When you enter a world, you will be able to select levels belonging to that world. You might be able to unlock the next world by clearing X levels or so in the one before it; this hasn't been ultimately decided upon yet.
This brought a new, very exciting idea to my mind. Let's have the players fight a little in order to build every level they want. At first, only the level elements that can be found in the first world will be available for custom construction, but this means all of them, right from the start. In order to get access to elements from other worlds, levels with those elements have to be reached, and this means that previous levels have to be cleared.
Essentially, think of this as collecting building blocks by unlocking them as you play your way through the game. This makes the construction a true part of the game, and the editor will not be a stand alone program; it will be accessible right from the main menu of the game itself.
This means that there are several things to collect or unlock; new worlds, new levels, new achievements, new hats and new pieces to build levels with. A new subscreen will be made accessible from the main menu, with the text 'Prices'. This leads us into a subscreen from which one will be able to view 'Statistics', 'Achievements', 'Building blocks' and 'Hats'.
From the statistics subscreen, a few pieces of information can be viewed; the amount of golden medals, the amount of silver medals and the amount of bronze medals, as well as the number of unlocked levels and worlds, and, finally, the percentage of completion of the main game.
The achievement subscreen contains a complete list of all available achievements, right from the start, with the ones that have not been won yet semi-transparent, like the locked levels of the demo version of the game. Holding the mouse over the box will reveal a text explaining what is required to unlock that very achievement.
The subscreen for building blocks, on the other hand, displays only the blocks that have been acquired, and more show up as they are unlocked.
The hat subscreen works the same.
Networking and accounts
Then we have the whole networking deal. To begin with, accounts will be associated with Royal Railway, and not with the game specifically, so that the same account can also be used for our upcoming fora, as well as any future games that can be used with accounts.
An account will NOT be required to play the game. Accounts will, however, be required to upload levels to the server. It will be possible to download levels without an account. Accounts are synchronised with the progress and creations of their owners. You can log in to have your scores, levels and downloads synchronised with your account, and will be able to log in somewhere else, or using a different version of the game, in order to keep playing.
This brings with it a few things to bear in mind. Everything will be synchronised to your hard drive, and if you have no internet connection, you can still stay logged in, and your progress will be synchronised the next time you have one. This means that you will not be able to log out without an internet connection, since this would mean loss of data, as everything is desynchronised from your hard drive when you do so, so that the space can be used for someone else logging in. The game will make all of these things clear with informative texts.
Thus you can, without any problems, play the game without an account, and even if you have an account, you can play without an internet connection. If you play without an account, though, your scores will not appear online, and you will not appear on any online highscore boards.
So, to summarise this all. You do not need an account. You do not need an internet connection. You can not submit your own creations online without an account. You can not appear on online scoreboards without an account.
Accounts are free, since they're associated with our website, but this does mean, like we said, that a price tag will be put on the PC version of the game as well, and this is not the only reason; the previous idea about selling theme levels has been purged - the theme levels will be there right from the start, in the form the aforementioned levels, and you just need to unlock them.
The login button will probably be put right in the top-right corner of the main menu.
Related pictures:
Downloadable content
So, about uploading and downloading levels, then. There will be a few sections/categories for levels. When you choose to play the game from the main menu, you will be faced with three choices.
Original levels
These are the main levels, divided into worlds, created by ourselves, and shipped with the games. Levels and worlds have to be unlocked, and this is the only mode in which hats, achievements and building blocks can be unlocked.
Official downloads
These are levels created by ourselves, that can be downloaded from the server, using the same interface as for the user-created content.
User-created content
These are the levels created by all of you. This section is further divided into the two subsections 'Approved levels' and 'All levels'. The first section contains only levels that have been approved of by Royal Railway after having been submitted; in this category you are sure to find qualitative levels that live up to the expectations. The second section contains both these levels, and everything else, not matter if it has not yet been approved of, or if it has been disapproved of.
The section containing all submitted levels is a good place to put levels that you just want to show to someone, even if they're not suitable for the other section. I guess we will take us the liberty to remove levels from here after some time to clear up server space every once in a while, and we might even do it systematically for disapproved levels that have reached a certain age.
Using this just to show levels to others is easy, even among hundreds of levels; each level must have a unique title assigned to it, and it is also possible to filter levels by their author, so they can easily be found.
Uploading levels is done from the organisation subscreen of the editor.
Extended messaging system
Another idea that I had, which I might not fulfill, if deemed unnecessary, was that of adding the same kind of informative messaging boxes that can already be found in the main game, to different subscreens of the game's increasingly many interfaces, to explain them.
In other news, I've not yet received any reply to the mail I sent about the incubator space yesterday, but I have created a schedule for work to do up until the 24th of this month, and it's all related to the things described above. I haven't looked into any more funding opportunities yet, but I'm getting increasingly interested in setting up a PayPal page for donations. We're definitely starting to need some money in order to fulfill this alive, I'm feeling.
A price tag will be put on the PC version of the game as well. A puny one, but still something - after all, this is the only version that comes with the editor, and all of a sudden, this obviously means that it's more attractive than the iOS version for many people, since portability wouldn't necessarily be the nicest part of this all, anymore.
We have already been discussing the idea of adding achievements to unlock, and so we will. Another idea that was brought forth, was that of collecting different hats to put on Charles's head. This will be done, too.
More unlockables will be available, though, because of several additions. Those of you, who have played the demo, know that the next level is unlocked by clearing the one before it. This will be extended. We obviously want to make the surroundings a bit greater in variation, and so, we will divide the game into several worlds.
I don't want to reveal them now, since some of them will be hidden until they are unlocked, but this means that the button that says 'Play' in the main menu won't lead directly into the level selection anymore, but into the world selection, which will have large, nice pictures representing each world. When you enter a world, you will be able to select levels belonging to that world. You might be able to unlock the next world by clearing X levels or so in the one before it; this hasn't been ultimately decided upon yet.
This brought a new, very exciting idea to my mind. Let's have the players fight a little in order to build every level they want. At first, only the level elements that can be found in the first world will be available for custom construction, but this means all of them, right from the start. In order to get access to elements from other worlds, levels with those elements have to be reached, and this means that previous levels have to be cleared.
Essentially, think of this as collecting building blocks by unlocking them as you play your way through the game. This makes the construction a true part of the game, and the editor will not be a stand alone program; it will be accessible right from the main menu of the game itself.
This means that there are several things to collect or unlock; new worlds, new levels, new achievements, new hats and new pieces to build levels with. A new subscreen will be made accessible from the main menu, with the text 'Prices'. This leads us into a subscreen from which one will be able to view 'Statistics', 'Achievements', 'Building blocks' and 'Hats'.
From the statistics subscreen, a few pieces of information can be viewed; the amount of golden medals, the amount of silver medals and the amount of bronze medals, as well as the number of unlocked levels and worlds, and, finally, the percentage of completion of the main game.
The achievement subscreen contains a complete list of all available achievements, right from the start, with the ones that have not been won yet semi-transparent, like the locked levels of the demo version of the game. Holding the mouse over the box will reveal a text explaining what is required to unlock that very achievement.
The subscreen for building blocks, on the other hand, displays only the blocks that have been acquired, and more show up as they are unlocked.
The hat subscreen works the same.
Networking and accounts
Then we have the whole networking deal. To begin with, accounts will be associated with Royal Railway, and not with the game specifically, so that the same account can also be used for our upcoming fora, as well as any future games that can be used with accounts.
An account will NOT be required to play the game. Accounts will, however, be required to upload levels to the server. It will be possible to download levels without an account. Accounts are synchronised with the progress and creations of their owners. You can log in to have your scores, levels and downloads synchronised with your account, and will be able to log in somewhere else, or using a different version of the game, in order to keep playing.
This brings with it a few things to bear in mind. Everything will be synchronised to your hard drive, and if you have no internet connection, you can still stay logged in, and your progress will be synchronised the next time you have one. This means that you will not be able to log out without an internet connection, since this would mean loss of data, as everything is desynchronised from your hard drive when you do so, so that the space can be used for someone else logging in. The game will make all of these things clear with informative texts.
Thus you can, without any problems, play the game without an account, and even if you have an account, you can play without an internet connection. If you play without an account, though, your scores will not appear online, and you will not appear on any online highscore boards.
So, to summarise this all. You do not need an account. You do not need an internet connection. You can not submit your own creations online without an account. You can not appear on online scoreboards without an account.
Accounts are free, since they're associated with our website, but this does mean, like we said, that a price tag will be put on the PC version of the game as well, and this is not the only reason; the previous idea about selling theme levels has been purged - the theme levels will be there right from the start, in the form the aforementioned levels, and you just need to unlock them.
The login button will probably be put right in the top-right corner of the main menu.
Related pictures:
Downloadable content
So, about uploading and downloading levels, then. There will be a few sections/categories for levels. When you choose to play the game from the main menu, you will be faced with three choices.
Original levels
These are the main levels, divided into worlds, created by ourselves, and shipped with the games. Levels and worlds have to be unlocked, and this is the only mode in which hats, achievements and building blocks can be unlocked.
Official downloads
These are levels created by ourselves, that can be downloaded from the server, using the same interface as for the user-created content.
User-created content
These are the levels created by all of you. This section is further divided into the two subsections 'Approved levels' and 'All levels'. The first section contains only levels that have been approved of by Royal Railway after having been submitted; in this category you are sure to find qualitative levels that live up to the expectations. The second section contains both these levels, and everything else, not matter if it has not yet been approved of, or if it has been disapproved of.
The section containing all submitted levels is a good place to put levels that you just want to show to someone, even if they're not suitable for the other section. I guess we will take us the liberty to remove levels from here after some time to clear up server space every once in a while, and we might even do it systematically for disapproved levels that have reached a certain age.
Using this just to show levels to others is easy, even among hundreds of levels; each level must have a unique title assigned to it, and it is also possible to filter levels by their author, so they can easily be found.
Uploading levels is done from the organisation subscreen of the editor.
Extended messaging system
Another idea that I had, which I might not fulfill, if deemed unnecessary, was that of adding the same kind of informative messaging boxes that can already be found in the main game, to different subscreens of the game's increasingly many interfaces, to explain them.
In other news, I've not yet received any reply to the mail I sent about the incubator space yesterday, but I have created a schedule for work to do up until the 24th of this month, and it's all related to the things described above. I haven't looked into any more funding opportunities yet, but I'm getting increasingly interested in setting up a PayPal page for donations. We're definitely starting to need some money in order to fulfill this alive, I'm feeling.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Actually, scratch the bits about the networking. Sorry to confuse anyone now, if I am, but I kept thinking, and I've already come up with a new proposal.
Accounts will only be used to upload levels and scores. Everything else is local. If you wish to submit a score online, press a button after having played it, next to the Facebook submission button.
This brings us closer to my original thoughts, and probably saves me, and most importantly, the users, a lot of headaches.
Woah. I was able to describe it all in just one paragraph instead. Now, that must be a better plan, right?
Accounts will only be used to upload levels and scores. Everything else is local. If you wish to submit a score online, press a button after having played it, next to the Facebook submission button.
This brings us closer to my original thoughts, and probably saves me, and most importantly, the users, a lot of headaches.
Woah. I was able to describe it all in just one paragraph instead. Now, that must be a better plan, right?
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
A new video log, this time actually including some of the footage from Iceland!
http://www.youtube.com/watch?v=dwRfRT6_sLM&hd=1
CHANGELOG:
-----------------
2011-08-05:
* Wrote the SQL for the databases 'users', 'classes', 'levels' and 'scores'.
* Created a class for server requests to work both for PC and iOS. Haven't tried it out yet.
* Started work on the server side application to handle rquests at the server side.
* Fixed up the server request class for the iOS version as well.
* Noticed that databases 'users' and 'classes' already existed according to my design, so I won't have to set those up. The web hotel doesn't want to load any pages tonight, so I'll try setting the two other databases up tomorrow instead.
2011-08-06:
* Created a subscreen base class.
2011-08-07:
* Finished up the subscreen class.
* Started work on a base class for multipage selection menu subscreens, like the one used for level selection.
2011-08-08 - 2011-08-09:
* Got the multipage selection menu subscreen work far enough to restore the level selection menu.
* Made the time and cork boxes optional.
* Added functionality for putting a secondary text on the "back" of a menu item, displayed when hovering it. This involved modifying the button class to detect hovering even when the button is disabled.
* Made it possible to mark items as selected, rendering them with a green colour blending.
* Put 2625.f as the standard speed for subscreen animations.
* Made it possible to draw focusables unfocusably.
* Added an option for textfield to accept only numbers.
* Finished up a textfield that can be used to set the exact page to go to, in the case that lots of pages will appear when searching for levels to download.
* Created an animated transition between pages, no matter their distance.
2011-08-09 - 2011-08-10:
* Changed the standard 4:3 resolution to 1024x768.
* Added a button labeled 'Construct' to the main menu, which now leads into the editor.
* Added a button for returning to the main menu from the editor.
* Spent some time on making the editor work out independent on the resolution, and making it updating positions when changing the resolution, which came as a well-welcomed side effect of deciding to deallocate and reallocate the editor object in between sessions. I can't do much more about this now, until new graphics are made.
* Filled up the last empty slot in the editor toolbar that's displayed in the world editor mode with a button for returning to the tool selection subscreen (tab).
* Added a corresponding button to the selection subscreen, for entering the building subscreen.
* Added a prompt dialogue asking to save the level before leaving the editor.
* Fixed a bug where the information bar of the organisation subscreen of the editor would display an incorrect (unchanged) number of levels after removing one or more.
2011-08-10 - 2011-08-11:
* Created a class for great buttons with a title and a text, much like the messages, but clickable.
* Created a container class to put subscreens of the play section in. The play button now takes one into the section in which a mode can be selected, and the mode for official levels leads into the level selection subscreen, changing the title text. Clicking the title's back button leads back into the mode selection, and clicking it again leads back to the main menu. All of this with animated transitions.
* Added a section for picking approved or all levels, leading into the level selection menu.
* Added a variable to keep track of which mode the level selection menu should operate in.
* Began work on the form for finding levels online. Added two textfields, that are not yet integrated into the animation, or positioned correctly.
2011-08-11:
* Made the window's clear colour be white for the editor, and black for the rest of the game.
* Fixed a bug where textfields would not clip and scroll text correctly if the view had moved.
* Made the messaging system work in any section.
* Added an initial message to the editor, but it doesn't say anything helpful yet.
2011-08-12:
* Added a button labeled 'Trophies' to the main menu.
* Made this button lead into a subscreen with four buttons to reach 'Statistics', 'Achievements', 'Building blocks' and 'Hats'.
* Created the statistics subscreen, displaying the total number of each type of medal, the total number of levels and worlds unlocked, and the overall percentage of content unlocked. None of the values are correct yet.
* Fixed a bug in the multipage selection menu subscreen, where bottom labels would be centered incorrectly, as well as a bug causing it to hide any top or bottom labels when hovered, even though no back text had been set, and finally a bug making it impossible to move to the last page unless it was full of items.
* Created a screen for achievements. The icons can be hovered to display an explanation as to how they are unlocked. Unlocked achievements are solid, and locked ones are semi-transparent.
* Added a screen for unlocked building blocks. Only unlocked ones will be displayed, and no semi-transparent items will be shown.
* Added a fourth button to the section first entered from the 'Play' button. The first two buttons are currently labeled 'Adventure mode' and 'Free mode', leading to pre-installed levels divided into worlds with unlockables, and downloaded levels, respectively. The second pair of buttons contains 'Official downloads' and 'User-created content', leading into the two subsections of downloadable content. The new subscreen for playing downloads has not been properly implemented yet, as there should be options for voting and removing them.
http://www.youtube.com/watch?v=dwRfRT6_sLM&hd=1
CHANGELOG:
-----------------
2011-08-05:
* Wrote the SQL for the databases 'users', 'classes', 'levels' and 'scores'.
* Created a class for server requests to work both for PC and iOS. Haven't tried it out yet.
* Started work on the server side application to handle rquests at the server side.
* Fixed up the server request class for the iOS version as well.
* Noticed that databases 'users' and 'classes' already existed according to my design, so I won't have to set those up. The web hotel doesn't want to load any pages tonight, so I'll try setting the two other databases up tomorrow instead.
2011-08-06:
* Created a subscreen base class.
2011-08-07:
* Finished up the subscreen class.
* Started work on a base class for multipage selection menu subscreens, like the one used for level selection.
2011-08-08 - 2011-08-09:
* Got the multipage selection menu subscreen work far enough to restore the level selection menu.
* Made the time and cork boxes optional.
* Added functionality for putting a secondary text on the "back" of a menu item, displayed when hovering it. This involved modifying the button class to detect hovering even when the button is disabled.
* Made it possible to mark items as selected, rendering them with a green colour blending.
* Put 2625.f as the standard speed for subscreen animations.
* Made it possible to draw focusables unfocusably.
* Added an option for textfield to accept only numbers.
* Finished up a textfield that can be used to set the exact page to go to, in the case that lots of pages will appear when searching for levels to download.
* Created an animated transition between pages, no matter their distance.
2011-08-09 - 2011-08-10:
* Changed the standard 4:3 resolution to 1024x768.
* Added a button labeled 'Construct' to the main menu, which now leads into the editor.
* Added a button for returning to the main menu from the editor.
* Spent some time on making the editor work out independent on the resolution, and making it updating positions when changing the resolution, which came as a well-welcomed side effect of deciding to deallocate and reallocate the editor object in between sessions. I can't do much more about this now, until new graphics are made.
* Filled up the last empty slot in the editor toolbar that's displayed in the world editor mode with a button for returning to the tool selection subscreen (tab).
* Added a corresponding button to the selection subscreen, for entering the building subscreen.
* Added a prompt dialogue asking to save the level before leaving the editor.
* Fixed a bug where the information bar of the organisation subscreen of the editor would display an incorrect (unchanged) number of levels after removing one or more.
2011-08-10 - 2011-08-11:
* Created a class for great buttons with a title and a text, much like the messages, but clickable.
* Created a container class to put subscreens of the play section in. The play button now takes one into the section in which a mode can be selected, and the mode for official levels leads into the level selection subscreen, changing the title text. Clicking the title's back button leads back into the mode selection, and clicking it again leads back to the main menu. All of this with animated transitions.
* Added a section for picking approved or all levels, leading into the level selection menu.
* Added a variable to keep track of which mode the level selection menu should operate in.
* Began work on the form for finding levels online. Added two textfields, that are not yet integrated into the animation, or positioned correctly.
2011-08-11:
* Made the window's clear colour be white for the editor, and black for the rest of the game.
* Fixed a bug where textfields would not clip and scroll text correctly if the view had moved.
* Made the messaging system work in any section.
* Added an initial message to the editor, but it doesn't say anything helpful yet.
2011-08-12:
* Added a button labeled 'Trophies' to the main menu.
* Made this button lead into a subscreen with four buttons to reach 'Statistics', 'Achievements', 'Building blocks' and 'Hats'.
* Created the statistics subscreen, displaying the total number of each type of medal, the total number of levels and worlds unlocked, and the overall percentage of content unlocked. None of the values are correct yet.
* Fixed a bug in the multipage selection menu subscreen, where bottom labels would be centered incorrectly, as well as a bug causing it to hide any top or bottom labels when hovered, even though no back text had been set, and finally a bug making it impossible to move to the last page unless it was full of items.
* Created a screen for achievements. The icons can be hovered to display an explanation as to how they are unlocked. Unlocked achievements are solid, and locked ones are semi-transparent.
* Added a screen for unlocked building blocks. Only unlocked ones will be displayed, and no semi-transparent items will be shown.
* Added a fourth button to the section first entered from the 'Play' button. The first two buttons are currently labeled 'Adventure mode' and 'Free mode', leading to pre-installed levels divided into worlds with unlockables, and downloaded levels, respectively. The second pair of buttons contains 'Official downloads' and 'User-created content', leading into the two subsections of downloadable content. The new subscreen for playing downloads has not been properly implemented yet, as there should be options for voting and removing them.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
Re: Bottoms up! - Follow the development of a game
Well, I played it now, and it's a nice game. It's quite difficult for me, but I'm looking forward to see more of this.
BTW: seeing your updates, I'm pretty sure I have an older version of the game. I downloaded it from the website, and I still have the arrow for the goal and the icicles and everything... Is there a newer version available?
BTW: seeing your updates, I'm pretty sure I have an older version of the game. I downloaded it from the website, and I still have the arrow for the goal and the icicles and everything... Is there a newer version available?
Languages I speak fluentlyPřemysl wrote:Oh god, we truly are nerdy. My first instinct was "why didn't he just use sunt and have it all in Latin?".Kereb wrote:they are nerdissimus inter nerdes
English, עברית
Languages I am studying
العربية, 日本語
Conlangs
Athonian
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Thanks!Mr. Z wrote:Well, I played it now, and it's a nice game. It's quite difficult for me, but I'm looking forward to see more of this.
BTW: seeing your updates, I'm pretty sure I have an older version of the game. I downloaded it from the website, and I still have the arrow for the goal and the icicles and everything... Is there a newer version available?
That's the only version that will be available before the release, I'm afraid, but we're actually working hard on trying to finish it up before the end of the year now, so hopefully it'll be out in about four months, if we are able to stick to that limit!
Last edited by Skomakar'n on Fri Sep 30, 2011 6:57 pm, edited 1 time in total.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
Re: Bottoms up! - Follow the development of a game
I just played through all six levels of the demo (the last one is a bitch >_>)
I would suggest putting some sort of arrow to indicate where the end goal is as usually I have to lose a couple of rounds only to locate it.
Nice game though, I enjoyed it
I would suggest putting some sort of arrow to indicate where the end goal is as usually I have to lose a couple of rounds only to locate it.
Nice game though, I enjoyed it
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Already done! There's a picture of it somewhere in the thread.Simmalti wrote:I just played through all six levels of the demo (the last one is a bitch >_>)
I would suggest putting some sort of arrow to indicate where the end goal is as usually I have to lose a couple of rounds only to locate it.
Thank you!Simmalti wrote:Nice game though, I enjoyed it
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
We're quite unable to find the time to make any new videos or write anything up at the moment, since we're on such a tight schedule at the moment, but this does mean that a lot of new stuff has been going on even though you haven't gotten to know of it. The least I can do is at least to post the enormous change log since the last time.
CHANGELOG:
-----------------
CHANGELOG:
-----------------
Code: Select all
2011-08-15:
* Created a class for resettable graphical components, that are automatically stored, so that their implementation of their pure, virtual resetPositions() member function can be called whenever the resolution of the game is altered, in order for them to make sure that everything is positioned correctly no matter what the resolution has been set to.
* Made this one of the parents for some of the classes that needed this functionality, and implemented it for them, so that all of the currently existing subscreens now are resolution independent.
2011-08-16:
* Created a smaller type of dialogue box, mainly intended for use on top of other dialogues, which is going to be used to display progress information, such as telling the player that one is being logged in, or that a level is being uploaded, and also to display error messages that may have to be displayed when no connection can be made, or the title of the uploaded level was already taken, or so. Having a button to return is optional.
2011-08-17:
* Created a class to handle login, and made it successfully filter out incorrect information and receive a response from the server upon successful login. This required both client side code and server side.
* Made sure that the fields of the login dialogue are emptied when it is closed, and that the username field has focus when one returns to it.
* Fixed two bugs in the textfield; first off, textfields containing illegal characters would keep their red tint even when disabled, rather than have a gray tint to indicate their state. Secondly, password fields would not turn red when containing illegal characters.
2011-08-18:
* Fixed a bug causing the dialogue, notifying the player that he is being logged in, never to appear.
* Moved the status subclass out of the login manager class, and renamed it NetworkStatus, to be able to use it in the upload manager I am about to write as well. Also moved the mode codes here.
* Wrote the server side part of the uploading. It has not yet been tested, though, as the client side needs to be written.
* Added support for adding numerical values to server requests, so that I don't have to convert everything to strings manually.
* Added a confirmation dialogue that shows up if the user has already uploaded a level with the same title, so that he can choose whether to keep the old upload or replace it with the new one.
* Fixed a bug where the content text of small dialogue boxes would not be centered properly.
2011-08-19:
* Modified the server side level storage algorithm a bit.
* I noticed how the upload manager did not stop anyone from uploading a level containing nothing more than a goal and a bottle, like it was supposed to, and by trying to solve this bug, I also found out about, and solved, another one. The problem was that the world limits, that blow you back into the level if you get too far, would be added to and counted as regular objects of the world, which they were not meant to be. I came to this conclusion by printing the datatype of each vector element, by using typeid() for the first time in my life. This would crash the editor when trying to reload the level, and was also the cause of the upload bug, since the upload manager considered the three limit boxes to be proper objects other than the goal and the bottle. Simply by telling the world not to store these limits in its vector, the problem was solved. However, this resulted in the world limits never having their draw method called, actually preventing the player from getting out of the level, so I simply put them in a separate array, since there is always three of them.
* I also found out that the editor would crash when trying to replay a level, because the level manager never kept track of which one was the current one if the level was started from the editor. Fixed this.
* Made final graphics for the options for downloaded levels right away; one button for checking the level, so that all checked ones can be removed, one button for voting the level up, one for voting it down, and one for removing that one level only.
* Implemented these buttons. Currently the only one that serves its purpose is the checkbox button.
* Created final graphics for, and added, a big button, with a trashcan icon, for removing all of the checked levels.
* Changed the way button labels are centered vertically, to make the two-line label of the aforementioned trashcan button line up correctly.
* Remove the search and sorting options from the download section and instead put the removal button where the textfields used to be.
2011-08-22 - 2011-08-23:
* Added /[]{}()~%&$@#+^| to the list of valid textfield characters.
* Programmed the server side part of retrieving levels available for download. Now it needs to be integrated into the interface.
* Created a string splitting function to make it more convenient to work with strings divided by specific tokens.
* Successfully got the level download screens to download and display available levels.
* Made sure that only the download sections display downloadable levels, while the other sections display levels on disk. Reloading them is a little slow, so I might have to add a little dialogue.
* Changed the colour tinting of background houses from 180,180,255 to 105,105,205, to make it more obvious that they are in the background.
2011-08-23 - 2011-08-24:
* Found out how to get rid of the console window that comes with the Windows version when compiled through MinGW from Linux; add the linker setting -Wl,-subsystem,windows, and possibly (I don't know if it actually made a difference, but at least it didn't break anything) change int main() into int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPSTR,int).
* Created a folder to store downloads; data/downloads.
* Updated the level selection subscreen code to load data from that folder if in the section of downloaded levels, rather than that of original ones.
* Updated the editor to always save files as unlocked, so that they can be played right away when downloaded.
* Fixed a bug in the level selection screen, where it would not reload levels from the server when returning to the download section if that was the last level subscreen visited.
* Got level downloads properly working. They are downloaded, stored in the correct folder and are then directly accessible from the subscreen for downloaded levels, and work just like they should.
* Fixed the filtering options for download searching, except for the ability to flip between pages.
2011-08-24:
* Made the downloaded levels have their indices correctly assigned, in ascending order. Levels replaced by newer versions will keep their old index, and fixed a few related bugs on the way.
* Made icicles destructible by statues and swings.
* Added a confirmation dialogue for the removal of multiple levels (or one, if no more are selected) and made the button become disabled when no levels are selected.
* Fixed a bug where the options for removal and voting would disappear after setting a new record on a downloaded level and then returning to the level selection screen.
* It appeared that the bug causing levels from the server not to get reloaded when returning to the download subscreen was not entirely fixed. I had a new go at it, and it should be working now, and so the case also seems to be.
* Fixed a bug where the levels' titles would not be properly saved after loading a file and saving it again.
* Fixed a bug where selecting the next level from the download section, after clearing the previous one, would crash the game, and along with it another bug where the next level would not be the correct one, after clearing a level.
* Added a big background box to the multipage selection menu subscreens. Might not keep it.
2011-08-25 - 2011-08-26:
* Created a class to keep track of progress, such as trophies and unlocked content. The logic is done, but it needs to be filled up with available content as we create it. Also, the number of worlds is not properly calculated yet, as the world structure is not completely done. All of the building blocks of the first world are assigned from the beginning.
* Made the statistics subscreen fetch these values and display them instead of the faulty placeholder ones.
* Added support for nine items per page in the multipage selection menu subscreen class, so that I could fill up the entire, newly added background box with content, and so I also added information about the amount of unlocked achievements, hats and building blocks.
* Added a utility function to convert the first character of a string into uppercase.
* Made the sunscreen for building blocks correctly display only those unlocked, but the editor has not yet been updated to reflect the truth in this and only provide the blocks displayed in this list.
* Began work on hat and achievement subclasses of their respective subscreen classes, and in the light of this, I slightly changed the implementation regarding these two types of trophies in the newly added trophy manager, and also implemented the actual counting of these, as I had actually forgotten this.
* Finished up the hat class and the related functionality of the hat screen.
* Made the game store the selected hat and have the game manager select this one in the menu upon startup, validating that the hat has actually been unlocked, to avoid cheating.
* Made it possible to select a hat by clicking on it, deselecting the previously selected one. Selected hat buttons are disabled.
* Made the foam actually change its colour depending on the hat selected. This involved making the base image white instead, and modifying the particle code not to tint the images white when changing the opacity. This change was not necessary for iOS, as the particle system does not set the opacity in the same way there.
* Fixed up the achievement subclass and made it possible to unlock achievements through it, currently leaving the achievement screen empty, as no achievements to unlock yet exist.
* Made it possible to unlock hats through the class, which involved extending the interface of the item subclass of the multipage selection menu subscreen class, and adding the option of adding user data, as well as inserting them in specific indices upon creation, so that hats that are unlocked after hats that should appear after them in the list still appear in the right place. I will extend this to the building blocks tomorrow. Have not yet tested this, though.
2011-08-26 - 2011-08-27:
* Created a class to handle changes in settings, so that I can get rid of the hard-coded, many times copied code that has been previously used, and thus make it easier to integrate more settings (such as the hat setting, yesterday).
* Removed all of the hard-coded changes to the settings file, as well as retrieval of data from it, and replaced it with calls to the new manager.
* Made the hat save the newly selected had to file when the selection changes.
* Realised that my implementation of hat selection was not safe, and changed it a bit (it would try to access indices which might have been invalid if not all hats had been unlocked in order).
* Fixed up the block subclass of the block subscreen, complete with an interface similar to that of the hats.
* Made a detailed pumpkin sprite that will be used either as a pumpkin block, pumpkin mask icon, or both.
* Wrote code to load the images for the hat sections, even though not all of them exist yet; the aforementioned pumpkin sprite was chosen as the icon image of the pumpkin mask hat, though.
* The resource loaders did not properly set pointers to failed resources to NULL. Fixed this.
2011-08-29:
* Updated the unlock mechanisms of the hats and achievements to make sure that they first check whether the trophy has already been unlocked, in order for them not to attempt to unlock anything twice.
* Wrote the code to actually store these trophies to file, so that the game will remember that they have been unlocked. The code has not been tested yet.
* Added a type property to editor tools, so that I could simplify the hard-coded mess returning the tool related to a specific type. This still has forced me to put some hard code in another place, but it still feels like a better solution, and there is not much more that I can do; the code base of the editor is really not that flexible, and this will do the trick.
* Made the item box only load tools that have been unlocked.
* This all came with a bug that cause the game to crash after finishing (beating or losing) a level, because it tried to update invalid level screens, as the game checked whether the requested mode was either that of local levels (original or download) or anything else, even if an invalid mode was set simply to have the subscreen update the next time. I made sure that the secondary selection actually made sure to get called only if the mode was instead any of the three download modes (official, approved or all).
* Started work on a mechanism for marking new trophies as new, with the option of unmarking them later on, so that the first time that they're seen in their respective lists, after having been unlocked, a little icon will appear. This is going to be extended to levels and worlds as well.
2011-08-30 - 2011-08-31:
* Finished up the aforementioned system for marking and unmarking new trophies with a little icon.
* Made it so that the information boxes in the statistics sunscreen are unpressable.
* Fixed up an alignment issue with subelements of the buttons of a multipage selection menu subscreen, as well as text alignment on any button. Will expand this to the few places where things like these are still not properly aligned yet. The fix was to round the horizontal position of the parent object.
* Thanks to the above fix, I could properly align the options buttons for downloaded levels with the bigger buttons that are used to start the levels, so that an option button and the big button can not be pressed at the same time, in order to avoid bugs.
2011-08-31 - 2011-09-01:
* Created a button image of proper size for the world thumbnail in the world selection menu.
* Aligned the news indication icons properly with both types of thumbnails, both big and small.
* Created the pumpkin class and tested it. It now rolls around and is blown away by the fans like other dynamic bodies. I noticed that Charles doesn't become flattened by any circular body, such as the pumpkins, or the globe statues. I will put this on the list and fix it later.
* Added support for the world loader to load pumpkins from level files.
* Created the pumpkin tool. Pumpkins are layered in the same group as crates and icicles.
* Added code for loading the in-game hat images as well.
* Created a temporary image for the pumpkin mask hat as worn by Charles, and wrote the code to have it drawn on top of his head, when chosen from the hat selection screen, rotating and contracting as he does.
* Created a particle system that draws sparkles emitting from Charles. This is to be used when a new hat is unlocked.
* Updated the messaging system so that it is set to be done when all messages are cleared.
* Created a hat for testing in the first level. Going into it now unlocks it properly.
* Got a message properly display when unlocking a hat.
* Made sure that the hat is selected and used right away when unlocked, activating the sparkles, which do not carry on to the next level.
* Fixed a bug in the light of this, where the hat was not reset if squeezed together, when entering the next level, and probably also fixed a bug where, in the editor, the bottle would not be properly rotated, after having played a level first. I also fixed a bug where the foam wouldn't change its colour when a new hat was put on when unlocked.
* Made sure that the new trophy is marked as new in the list.
2011-09-01:
* Added a loading screen for the editor.
* Changed the download sections so that the levels will not get downloaded until the screen has finished its transition animation and is fully visible, so that a loading message now can be added.
* Made it so that the snow and the sky of the main menu does not animate when the a confirmation box is visible in a sunscreen.
* Created the final pumpkin hat sprite for Charles.
* Made the time and cork boxes have the same blue tint for transparent and locked levels.
* Added messages both upon successes and failures to the level download sections.
* Added a confirmation box when an already downloaded level is requested for download, to let the user know this, and have him choose whether or not to overwrite it.
* Removed the loading bar from when uploading a level, so that only the dialogue is displayed.
2011-09-02:
* Fixed a bug in the editor where copied items would not be properly aligned when pasted.
* Reordered the items in the statistics subscreen, putting the percentage in the middle, and making it green, to make it stand out.
* Added the icon image for the pumpkin building block.
* Fixed a bug in the editor where only statues and not their pedestals would move when nudged a single pixel, as well as a bug where globe statues would not be correctly placed when playtesting.
* Fixed a bug that caused the game to crash when restarting a level with swings.
* Made it so that a ghost image of the cursor does not show up when a message is displayed in the editor.
* Fixed a bug where the stars would become incorrectly aligned after creating a bottle in the editor.
2011-09-05 - 2011-09-06:
* Fixed a bug where the dialogue confirming the success of a downloaded level would be shown twice.
* Redid the entire system for loading levels into the selection sunscreens. I have not restored the download section to the point where it displays the author and title yet, though.
* Made the world section loader set whether worlds are locked or unlocked.
* Made the statistics screen properly store the information about unlocked levels.
* Created a some classes and a system for displaying sequences/cutscenes in between worlds, to tell the story. They are animated as specified, displaying the desired strings of text, with specific music playing.
* Set the sequences up to be displayed before the first and last world. This will be changed later so that the sequence belonging to the last world is instead played after beating it.
* Made it possible to skip a sequence by pressing escape.
2011-09-06:
* Made it so that the buttons of the win and loss screens are not enabled until the screen has been fully faded in.
* Made it so that a dark tint is shown even for messages that do not have screenshot backgrounds.
* Fixed a bug where aborting a sequence would make it never appear again.
* Created the first cutscenes with temporary assets.
2011-09-11 - 2011-09-12:
* Created the graphics for the loading screen.
* Programmed the new loading screen.
* Made it possible to delete downloaded levels permanently, both using the big trashcan button to remove selected levels, and the individual buttons to remove single levels.
* Made it so that indices are updated when levels are removed.
* Made it possible to flick through pages when searching for downloads.
* Made a slight modification to the loading screen's graphics.
* Altered the database structure regarding votes, and updated the server-side program.
* Made it possible to cast votes; one can always change the vote later on. It is not possible to rate a level before having played it.
* Fixed a bug making it impossible to download levels not on the first page.
* Fixed a bug making it impossible to rate levels that were downloaded during the same session.
* Fixed a bug here returning to the level selection screen after playing a level not on the first page would cause the screen to animate back to that page.
* Fixed a bug where the level selection screens would not be reset to the first page after leaving them.
* Fixed a bug where the redownload confirmation dialogue would show up between pages when flicking them, after having been displayed for the first time.
* Fixed a bug where replacing old versions of already downloaded levels would mess up indices.
* Changed 'Adventure mode' to 'Story mode'.
* Fixed a bug where the success confirmation would not show up after replacing an already downloaded level.
* Made it so that checked items are unchecked when the subscreen is left.
2011-09-13 - 2011-09-14:
* Added support for titles to story mode levels as well, and removed the numbers from the levels, so that the titles could be moved to their place.
* Added a heart icon for the downloaded levels, for displaying the number of votes. Grey for unpopular or unrated ones, and red for others.
* Made sure that the searching goes back to page one when filtering options are changed, to avoid weird bugs.
* Left-aligned bottom texts of multipage screen buttons instead of having them centered.
* Added an indicative icon that is displayed when the mouse is held over a download button.
2011-09-14 - 2011-09-15 - 2011-09-16:
* Fixed a bug where the snow particles would stack up when downloading a level. Updated the code for iOS as well.
* Fixed a bug where the screen would flicker for a frame after casting a vote, by telling the game manager not to clear the screen the same frame that the message is updated.
* Fixed the same bug when entering the editor using the same method.
* Using the comma operator, I made the loading bar for the editor move in a very hackish manner, by preceding each member initialisation with a call to a function that updates the bar, on the left side of the comma, and the actual value to initialise the members with on the right side of it.
* Created a class for a competitor to race against, who moves along a path of points, that is rendered smooth in two steps before the level begins.
* Noticed that I had forgotten to add copy functions for pumpkins and competitor, so I did this.
* Created a tool to add competitors, temporarily with the button image of the arrow tool. It has a counter that will be used to select the competitor. Only one competitor can be added.
* Created a pipeline for defining paths for competitors by holding shift and dragging from previous points. There is always a point to start with.
* Got the editor to properly load a path when loading an old level with a competitor.
* Got the editor not to count the segment nodes of the path of a competitor as objects.
* Fixed a bug in the editor, where it would not reset the object count after creating a new level.
* Finished up a sprite sheet for the force fields.
* Modified the animated image class of the computer version to match up with that of iOS; just like the iOS version of the class, it now supports sheets rather than strips of frames.
* Fixed bugs relating to the collection of available online content. First off, pages were not retrieved correctly, and secondly, they were not reset correctly when changing conditions when not on the first page.
* Changed the way voting works a bit, yet again, and finally got levels properly ordered by popularity.
* Made results with no shots and no time be set to one second and one shot, to avoid unlocking bugs.
* Fixed a bug where hovering over multipage menu items that had icons would hide the top and bottom labels.
* Removed screen glitching when displaying a confirmation dialogue for downloads. It results in not displaying the other dialogue below, but I am actually okay with that.
* Removed further screen glitching here and there in the download section.
* Finished up the sprite for the force field keys.
2011-09-16:
* Created a new image for the force field.
* Added support for setting whether animated images should loop or not, since I only want the force field to play its animation every once in a while, flashing it's light, and then waiting for another second or so.
* Finished up the visual part of the force fields, both graphics-wise and programmatically.
* Finished up a final, animated sprite of a bat.
* Added support for setting whether animated images should cycle back and forth instead of looping around, since I want to do this for the bat's animation.
2011-09-17:
* Finished up, and animated, the ghost.
* Created the image for the static air in-/outlets.
2011-09-18 - 2011-09-19:
* Finished up the animated, false monster air in-/outlets, biting, and returning back to their resting state.
* Created the attack sheet and the retract sheet for the air in-/outlets.
* Created a candy cane sprite.
* Finished up the icons and buttons for all of the trophy subscreen section buttons, including the new one for scoreboards. Their hover and press images have not been made yet, though.
* Finished up all of the aforementioned buttons, with all frames.
* Modified the big trashcan button to have the pushed down picture have the lid of the trashcan open, to match the newly made buttons, in how they too keep their hovered variation when pressed.
* Put the new buttons in the trophy screen, and added a big background like the one in the multipage selection screens behind them.
* Finished up the non-hovered buttons for the buttons of the play type selection screen.
2011-09-20 - 2011-09-21:
* Finished up the full sheets for the first play type selection subscreen (not including the two buttons for the user-created content type selection screen).
* Put these four buttons into the game, and added the same type of background as for the trophy screen.
* Finished up the non-hovered and non-pushed graphics for the buttons used to select which type of user-created levels to browse.
* Finished up the final buttons mentioned above, with their full sheets.
* Added support for buttons to order their sheets horizontally, to allow for tall buttons to be ordered differently in their sheets, not to cause enormous textures to be loaded into memory.
* Added the two new buttons to their respective screen, and, once again, added the big background.
* Added the lock icons to the locked levels, and increased the opaque level of the icons of semi-transparent buttons.
* Finished up the force field class. Might be adding some more animations later. Will be adding specific loss strings.
2011-09-22:
* Fixed a bug in the networking class, causing it to try to connect upon startup, which would freeze the game for about thirty seconds if no connection is available. Updated the code for iOS as well, even though it probably doesn't make a difference there.
* Finished up the ghost, although with no sounds yet, as Erik has not yet made them.
* Fixed up the bat and its flapping sound, but the mirroring when turning will not work until I upgrade to SFML 2.0. The code for it is already written, though.
2011-09-23 - 2011-09-24:
* Fixed a tiny bug where the statistics screen would say that one more world than actually has been unlocked, is unlocked.
* Activated the bullet flag for chimneys and scaffoldings, as well as the air outlets that I am currently working on. Seems to be working better. Updated iOS as well.
* Got regular air inlets working in all four directions, but currently with no sounds.
* Added sound to them.
* Added support for clearing out fixtures from a physical body.
* Updated the animated image class to automatically calculate frame size and count when setting the frames per axis, to save myself some time.
* Removed any manual instances of doing this.
2011-09-24 - 2011-09-25:
* Modified the debug drawing routine of physical bodies to take circular shapes' relative offsets into consideration. I had thought that they already did, and wondered why the circles were not positioned correctly, but in fact they were; they were just debug drawn at the wrong position.
* For both computer and iOS, I made sure that the animated images reset their timer when unpaused, or frames would be skipped, causing inconsistencies in the attack and retract animations of the air outlet monsters that I am currently working on.
* Finished up air outlet monsters, that bite after the bottle when it comes near, and then retracts. Getting bitten makes one lose. There are no sounds yet.
* Fixed a bug causing multiple objects affected by the slowdown of a bat or a ghost to collide into each other with a tremendous force, only to fly all over the place, by changing the whole implementation, which now simply modifies the linear damping of their physical bodies.
* Got the outlet monsters working in all directions.
2011-09-25:
* Noticed that the collision detection box used for the body of air outlet monsters was too wide. Fixed this.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Work in progress:
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
Re: Bottoms up! - Follow the development of a game
Hmm? I havent been following the thread lately, whats that spaceship-like picture?
Sunàqʷa the Sea Lamprey says:
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
It's a sprite for the game! Apparently Erik didn't want me to spoil it, but I don't really care now that you've already seen it. These boards don't exactly make up the bulk of people who will play the game.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Progress! The text at the bottom is a little kameo, in that it's actually Kozea! Not actual Kozea, though, but the main mainland variety that is pretty much to Classical Kozea what French is to Latin, but still. It means 'Kozean airways' ('Hmāranda ljòghal' [ˈm̥aːrəndə ˈʐɛ͡ɪhɑɫ]) and if we ever make the game that Kozea was intended for, this very text will, although with some sexy, stylised handwriting, be written upon the air ships we'll have there.
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
The demo now works for all Windows 7 (and 8, I suppose) 64 bit users, it seems!
It has only been confirmed by two people so far, but none of these could run the demo before, and the same was confirmed for the LD game the other day, so it seems promising!
Here's a screenshot of it running natively in Windows 7:
The old download link has been updated, and is located on the same download page as before:
http://royalrailway.com/BottomsUp/
It has only been confirmed by two people so far, but none of these could run the demo before, and the same was confirmed for the LD game the other day, so it seems promising!
Here's a screenshot of it running natively in Windows 7:
The old download link has been updated, and is located on the same download page as before:
http://royalrailway.com/BottomsUp/
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
-
- Lebom
- Posts: 189
- Joined: Sat May 07, 2005 11:06 pm
- Location: Aotearoa
Re: Bottoms up! - Follow the development of a game
I KEIM HEWE IN THE ΠVEΓININΓ TA LEAWN WELX, ΠVVT NAW THE ΠVWΠVΣE FVW ΠVEINΓ HEWE IΣ VNKLEAW. THAT IΣ WAIT I LIKE TA MAKE KAWNLANΓΣ AWN THE ΣΠAWT.
TVWTLEHEAΔ
TVWTLEHEAΔ
Re: Bottoms up! - Follow the development of a game
Wow! It looks much more professional and complete now, with lots of levels and explanations and level editor and all those cool stuff... The rocket level was a nice change, and I love the hats.
Languages I speak fluentlyPřemysl wrote:Oh god, we truly are nerdy. My first instinct was "why didn't he just use sunt and have it all in Latin?".Kereb wrote:they are nerdissimus inter nerdes
English, עברית
Languages I am studying
العربية, 日本語
Conlangs
Athonian
-
- Lebom
- Posts: 189
- Joined: Sat May 07, 2005 11:06 pm
- Location: Aotearoa
Re: Bottoms up! - Follow the development of a game
How big is the file?
I KEIM HEWE IN THE ΠVEΓININΓ TA LEAWN WELX, ΠVVT NAW THE ΠVWΠVΣE FVW ΠVEINΓ HEWE IΣ VNKLEAW. THAT IΣ WAIT I LIKE TA MAKE KAWNLANΓΣ AWN THE ΣΠAWT.
TVWTLEHEAΔ
TVWTLEHEAΔ
- Skomakar'n
- Smeric
- Posts: 1273
- Joined: Tue Aug 18, 2009 8:05 pm
Re: Bottoms up! - Follow the development of a game
Turtlehead wrote:NICE!
Thank you both! More coming up.Mr. Z wrote:Wow! It looks much more professional and complete now, with lots of levels and explanations and level editor and all those cool stuff... The rocket level was a nice change, and I love the hats.
The zip file is 32.7 MB. Someone told me that the DLL files could be removed and that it still would work, but that doesn't work for me at least, so I don't feel safe about not packing them along.Turtlehead wrote:How big is the file?
Online dictionary for my conlang Vanga: http://royalrailway.com/tungumaalMiin/Vanga/
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.
#undef FEMALE
I'd love for you to try my game out! Here's the forum thread about it:
http://zbb.spinnwebe.com/viewtopic.php?f=5&t=36688
Of an Ernst'ian one.