Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

877246 Posts in 32852 Topics- by 24294 Members - Latest Member: RopeDrink

May 19, 2013, 12:35:35 AM
TIGSource ForumsDeveloperFeedbackDevLogsBottoms Up! - October demo fixed for W7 64 bit! [iOS & PC]
Pages: 1 [2] 3 4 ... 6
Print
Author Topic: Bottoms Up! - October demo fixed for W7 64 bit! [iOS & PC]  (Read 11147 times)
Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #15 on: June 14, 2011, 12:06:37 AM »

Post 11 - June 14th 2011

I found a bug yesterday, and today I decided that it would be fun to film it before getting rid of it, so I did, and now I just finished uploading it to our YouTube account, RoyalRailway. Enjoy.



http://www.youtube.com/watch?v=sD1mzcaZDgY&hd=1
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #16 on: June 14, 2011, 12:35:55 PM »

Post 12 - June 14th 2011 (after having slept)

Bottoms Coming Up!

Chapter Two: Partur tveir


--------------

It is now my turn to continue this story. My name is Adam, and I am mainly the programmer and the artist, but also the one who hatched the initial idea for this game, which was never even meant to become a complete game in its own right.

The prelude of this part will thus be one of a slightly more prehistoric character than that of the previous installation, as I will take you all the way back to an unclear and murky prophecy.

The prophecy

It was during a night well over a year ago, that I had crawled into bed, in order to get some rest after what I can only imagine had been a long day of programming. I closed those weary eyelids of mine, and it didn't take long until pictures began to appear upon the pitch black cloth that was their inside, as my drift into the world of dreams was initiated.

One of these colourful expressions of my unconscious mind was the fleeting vision of what would eventually come to be transformed into a full-fledged piece of digital art. It was the blurry sight of a man sitting upon a bottle of oversized proportions, using the high pressure of the stream of fluid spurting out of its neck in order to move about. This was pretty much it. I opened my eyes in order to make a note about it, and went back to sleep. The next morning, I told Erik about it, and after that, it was pretty much forgotten, and would dwell in the dim dust for more than year to come.

The enlightenment

Life went on, and Erik and I kept pouring devotion and ambition into the realisation of an obese youngling called Tommy, whom we had created as the main character of a side scrolling platformer game that we were working on. His rampages were to be of proportions much like his own, and in order for to them to live up to our expectations, the engine was rewritten no more than three times.

During the third time of its revisitation, I took the decision to look into a third-party library for the physics calculations, in order to increase the speed of the development time, and the accuracy of these calculations. Box2D, which can be downloaded from http://www.box2d.org/, was eventually chosen for the task, with Chipmunk (http://code.google.com/p/chipmunk-physics/) being the second option.

I had never used this framework, though, and I had no desire to integrate into my platformer engine until I knew for sure that it would stand up to the job, and if it would, I obviously wanted to be familiar enough with its layout to be able to carry out the integration in the best way possible.

To begin with, I tried to set up anything working at all, resulting in this simple scene with a couple of physical bodies reacting to each other:

http://i1181.photobucket.com/albums/x432/RoyalRailway/Box2D_1.png

I earned the knowledge that helped me get going through a set of excellent videos about using Box2D with ActionScript 3, which is the scripting language of Adobe's Flash, even though I would be using the language C++ myself, and even though the Box2D version used in those videos is quite old and sometimes obsolete in correspondence with the current version, as I looked up the differences on my own. These videos can be found at http://kerp.net/box2d/.

I then set out to try and make myself a little game using the fresh knowledge that I had earned through the pedagogical help of the creator of these tutorials. This was it. This was when I decided to dig up that old, single sentence that I had written down, about the rider of a bottle. The first lines of code of what would become 'Bottoms Up!' were written.

This was in October last year. The graphics for the bottle were the first to be made, followed by those of the foam, as the particle system was implemented early on. In one of the earliest screenshots that I have, the game is already very recognisable, even though these are the only two assets, as they have remained to this day:



With the sky as the next addition, the game was taken even closer to its current state, as the sky, too, remains unchanged since these early days:



At this point, though, the aforementioned platformer game, code-named 'Tommy', after the name of the main character, was still the main course on the menu, and we were both eager for me to finish playing around with Box2D, so that we could get on with this project, which we had been planning out extensively during the year, programming a lot, creating assets and planning out entire levels for.

I believe that it was about a month or a half later, that we realised that the game that I was making to learn how to use Box2D was actually transforming into something playable that could actually be fun to release for others to take part of.

We had already decided at that point, that the game takes place during New Year's Eve, and I had already made snow-covered assets such as the houses. As this was in November, we decided to work hard on the game for almost two months and release it on this very date; New Year's Eve.

Only one shot to make it in time

The title of this section is a symbolic one. Just like the player of 'Bottoms Up!' has to race against time using a limited amount of shots, we now had a single shot to finish the game in very little time, and so it started; menus were designed, a format to store levels in was decided upon, music and a bunch of sound effects were made, and more details, such as falling snow, were added, and a nice, big, bright moon was added to that parallax goodness of our star-sprinkled sky background.






Then the six levels of the demo were created. There was no level editor at this point, and so I actually created all of them with hand-written code, which was a tedious process, and my laziness towards the end can easily be spotted by factors such as the complete lack of icicles in level three, as all of these had to be placed with their own codes, specifying not only position, but vertical and horizontal scale, for variation. I just couldn't be bothered to do it, or we wouldn't have been able to make it in time, as there were more important things to get done.

The fact that I was falling asleep after way to many hours awake, as the final hands were laid upon the game, right before we were about to release it, shows clearly in the credits screen, where I didn't even think of not aligning the two boxes of text horizontally, as the boxes and buttons in the rest of the interfaces of the game are slightly random in alignment, for a more harsh and unwashed look, just like with the style of "bleeding pixels" that I had been using for the graphics of the game, in order to emphasise the impression of the rough city.

Some lasting impressions were actually based upon random or unexpected decisions that hadn't really been thought through initially; for example, the first level of the currently available demo of the game is actually just a refined version of the "level" that was used for testing during most of the development, before any final levels actually got made. Everything was actually just placed quite randomly, but it turned out to be quite a nice layout for an actual level, and so it was simply fine-tuned and then kept almost in its original form.

The final decision

At this point, having released the game, we actually saw it as a finished game. We were planning on releasing new levels for download, as the way the game worked (and still works), it would be possible to simply drop the new levels into the level folder of the game, to get them into it.

About two or three weeks later, though, no more levels than the original six already in the demo had been released. It was at about this time we announced the fact that we were going to take this project a lot further than we had initially been planning on; the game was going to be developed for the iOS, and both that version, and the computer version, would have loads of new assets and levels created before the final release, and we also wanted to take the comments from people who had played the demo into consideration, in order to make the final game - for real, this time - a pleasurable and comprehensive experience for everyone.

So how was the demo made? What were the technical details regarding the creation of the graphics and the thoughts behind the programming? How did I get it running in an iPhone? These are all stories for several, future installations of 'Bottoms Coming Up!' to come. This is it for part two; stay tuned to read about the creation of sound effects, as Erik is the host of part three tomorrow.
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
bigGIANTcircles
Level 0
**


BigGiantCircles
View Profile WWW Email
« Reply #17 on: June 15, 2011, 10:44:25 AM »

Fun game!  Once I turned full screen on, I enjoyed it a bit more, b/c I wasn't constantly clicking outside the window.  I guess the only thing that bugged me a little (which may not bug others, since I suppose finding the goal might be part of the fun) is simply not really knowing where I was supposed to go.  Maybe at the start of each level, a flashing arrow that points in the general direction of the goal might be nice.

The music is charming, but as a composer, the instrument is a little fakey to me, particularly the guitar.  I don't know what your plans are for the final release, but it might also be better to have different tracks every few levels, or maybe have a variety of tracks the player can choose as their bgm.

Anyway, cute game, would play again!
Logged

Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #18 on: June 15, 2011, 10:49:24 AM »

Fun game! 
Thanks!

Once I turned full screen on, I enjoyed it a bit more, b/c I wasn't constantly clicking outside the window.
Haha. Well. You can drag and hold the line from somewhere on the screen and release it outside of the window too.

I guess the only thing that bugged me a little (which may not bug others, since I suppose finding the goal might be part of the fun) is simply not really knowing where I was supposed to go.  Maybe at the start of each level, a flashing arrow that points in the general direction of the goal might be nice.
I'll give you an answer in the form a picture of the progress previously posted in this very topic:


So, yes. We will be doing exactly that.

The music is charming, but as a composer, the instrument is a little fakey to me, particularly the guitar.  I don't know what your plans are for the final release, but it might also be better to have different tracks every few levels, or maybe have a variety of tracks the player can choose as their bgm.
I'll tell Erik to come here and have his say about this one, as this is his field of responsibility and knowledge.

Anyway, cute game, would play again!
Awesome!
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Erik Schröder
Level 0
**


A lazy music composer

starerik@hotmail.com
View Profile Email
« Reply #19 on: June 15, 2011, 10:56:39 AM »

he music is charming, but as a composer, the instrument is a little fakey to me, particularly the guitar.  I don't know what your plans are for the final release, but it might also be better to have different tracks every few levels, or maybe have a variety of tracks the player can choose as their bgm.
I've thought of having several tracks to choose from (like Tetris), but I think we want to keep the file size to a minimum. We'll see what happens when the game is released, if people demand new music, we could do that through an update.

But I'll see if I can update the current music a little and maybe add some stuff.

About the fakey-ness, it's not supposed to sound real. I'm all about a good sound rather than realistic. But if some people only think realism is good, then that's their problem. Smiley
« Last Edit: June 15, 2011, 11:06:49 AM by Erik Schröder » Logged

It's like, I don't care about nothin', man.
Erik Schröder
Level 0
**


A lazy music composer

starerik@hotmail.com
View Profile Email
« Reply #20 on: June 15, 2011, 04:41:44 PM »

Bottoms Coming Up!

Chapter Three: The Dry Martini

--------------

Today, kids, it's all about sound effects!

The first sound I made was when the ice breaks. I thought about which sound I was going to use, but it didn't take long until I decided that glass was the best choice. Since we didn't have long, I chose to be lazy and get all sounds off the internet. I chose http://soundsnap.com as my source. I don't remember how I found out about that website, but it has a very large library.

Anyways, I chose to edit all sounds with Adobe Audition 1.5. With the ice breaking sound I used a sound when glass breaks, pitched it down a little and added some reverb or echo. With other sounds like when you fire the bottle for example I used 3 sounds simultaneously; 1 for the cork, 1 for when you pour champagne into a glass (up-speeded) and 1 for the champagne fizz noise (which is constant because the bottle is foaming constantly). There were no (at least that I could find) sounds when the champagne is spraying, so I had to experiment a little. The fan noise is another example of where I had to mix several sounds; I took machine noise and mixed with a strong wind, since all I could find was lame bathroom fans. The sound with most mixed sounds is the intro; 2 different samples of bells ringing in the far distant, 3 different wind samples and 2 fireworks (whereof 1 is used twice).


The fan.


The intro.

At one point I decided to sample some stuff on my own with my Zoom H4N (a portable recording device). I went out an early winter morning and thought I'd record sounds for when the bottle impacts and is sliding on the ground. I used a bottle of julmust (Swedish holiday beverage) but it didn't end well. No, the bottle didn't break or anything but the recording session didn't go well. It was hard to make it sound as I had imagined and it was freezing outside and I was very inexperienced with recording sound effects. Then again, I still am, but still.


Zoom H4N.

I could talk a little about the software I am using. I've been using Adobe Audition since it was called Cool Edit Pro 2.0 and was developed by Syntrillium Software. I love it. I have tried out Goldwave and Audacity, but I think they're too clunky and I think that I just can't get that same precision as I can with Adobe Audition.

Nah, I'm not much for making sound effects at all. I hope I don't have to worry about this in the future and just focus on the music (when it comes to sound in general). I give the sounds in "Bottoms Up!" 3 out of 5 bottles.
Logged

It's like, I don't care about nothin', man.
Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #21 on: June 15, 2011, 04:52:25 PM »

Post 13 - June 16th 2011

This extract from the development movie is an older one than the last. This time, too, the bottle is transformed into a rocket with the help of fans, but unlike the other video, it was not caused by a bug.



http://www.youtube.com/watch?v=JV-hDm7lqI0&hd=1
« Last Edit: July 07, 2011, 04:08:24 AM by Skomakar'n » Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #22 on: June 17, 2011, 05:41:35 PM »

Post 14 - June 18th 2011

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.
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #23 on: June 19, 2011, 12:47:35 PM »

Post 15 - June 19th 2011

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.
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #24 on: June 22, 2011, 12:46:05 PM »

Post 16 - June 22nd 2011

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.
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Nugsy
Level 10
*****



View Profile
« Reply #25 on: June 22, 2011, 01:04:39 PM »

I feel as though the little guy riding the bottle should have some floppy bunny ears that flop around as he flies along. Durr...?
Logged


Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #26 on: June 23, 2011, 12:05:39 AM »

I feel as though the little guy riding the bottle should have some floppy bunny ears that flop around as he flies along. Durr...?
Haha. No matter what, some sort of animation should definitely go into the final product.
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
asiekierka
Level 0
**


View Profile Email
« Reply #27 on: June 23, 2011, 08:52:04 AM »

This... this is awesome! :O
Logged

Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #28 on: June 23, 2011, 08:55:10 AM »

This... this is awesome! :O
Thanks! Anything in particular?
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Skomakar'n
Level 10
*****


Vąutah


View Profile WWW Email
« Reply #29 on: July 02, 2011, 09:15:11 AM »

Post 17 - July 2nd 2011

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.
Logged

mak gam
Geisha Novia: Out now!
Bottoms Up!: Devlog

Royal Railway on Twitter.

Adam Emil
Pages: 1 [2] 3 4 ... 6
Print
Jump to:  

Theme orange-lt created by panic