Rss

Archives for : Gaming

#1GAM for March: Learning experience

I am not going to be completing my #1GAM project, unfortunately. I do have an executable download for Mac and could wrap up the Android/iOS stuff, but it’s all just so meh that it’s not really worth sharing. I ended up spending a lot of time learning about and then modifying the game framework to get it to do what I needed it to do, and if I continue working on March’s game, I won’t be able to start on nor finish April’s (and then May will get pushed, and so on).

Instead of completing the game, I set out to learn how to do basic things like build for multiple platforms, play audio (more like, where to put the files and where NOT to put the files), animate sprites in phases (turn-based game so pre-movement and post-movement), save and load files (framework didn’t support multiple files), and configurable keyboard controls (framework didn’t support keyboard at all). All sorts of basics.

This might count as an excuse, I dunno. I’m calling March a learning experience. Now that these basics are out of the way I think I’m truly ready for the #1GAM April challenge.

#1GAM

ARogueLike 2

I’m giving this #1GAM thing a try. March’s theme is “rogue”, so naturally I went with a top-down roguelike called ARogueLike. This is the first real game project I’ve worked on in quite a while so I am spending a lot of time learning and re-learning some lessons, like just because the tutorials for a game engine aren’t MVC doesn’t mean you shouldn’t write MVC from the start. Obvious stuff, but it’s easy to slip up and just code code code.

I’m using the cocos2d-x C++ framework for this game. I was looking for a framework that was multiplatform and this one fit the bill. I was able to put together a barebones repository that holds all the doodads necessary to launch a game on iOS, Mac, and Android from the same code, based on Cocos2d-X Meta-Project but updated for recent betas. I think it’ll be useful for folks and I’ll upload it one of these days.

I’ll be uploading videos for this and future #1GAM contributions to a YouTube playlist as well as linking them on the #1GAM Google+ page.

By the way, for the libgdx users: I still think of libgdx fondly, and while I know it supports iOS now that comes at a price ($399 for MonoTouch). Maybe a free alternative will come out some day but for now I’m playing it cheap. Also, Eclipse has been wearing on me. The latest RC is supposed to be faster, particularly in the XML editor, but I haven’t spent the time trying it out yet.

The libgdx/box2d Jumper tutorial

I have been too busy to finish the tutorial, and I’m not sure when I will get around to it. I know I’ve been leaving a bunch of people hanging for months, and for that I apologize.

However, I have good news. There’s better, neater software available for building graphics and fixtures for libgdx/box2d games: The Box2D Editor. The same person has created a better texture packer GUI and is working on a physics level editor. Way better than anything I was going to be showing you here!

Check out Aurelien Ribon’s Dev Blog.

libgdx, box2d, tiled maps: full working example, part 2/3

This is part 2 of a 3 part post demonstrating how to make a simple side scrolling game using libgdx and box2d. See part 1.

Updated 2011-09-19: Heh, now uses libgdx 0.9.2. No longer has its own Box2DDebugRenderer, figured out a better way using the new Matrix4 argument to renderer. Improved the controls by removing linear damping and replacing it with friction. (I am learning as I go with this, for what it is worth.) Discovered that I made a rather embarrassing mistake in leaving out rudimentary on-screen controls for Android devices. They are still pretty cruddy, though. Maybe I’ll come up with something better, or maybe someone else will and will contribute it? :) Either way is fine.

Updated 2011-09-18: Now uses libgdx 0.9.1.

In part 1 you saw how to make what is essentially a tiled map viewer. After you are through with this part you will have a character that you can move around the screen in a “natural” way, or at least a familiar way. As in part 1, download JumperTutorialProjects.zip for part 2 and follow along as the code is explained.

Continue Reading >>

libgdx, box2d, tiled maps: full working example, part 1/3

This will be a 3 part post demonstrating how to make a simple side scrolling game using libgdx (official project blog), a cross-platform library that allows you to simultaneously build for the desktop and for Android devices.

Updated 2011-09-19: Updated to use libgdx 0.9.2. No code changes required.

Updated 2011-09-18: Updated to use libgdx 0.9.1 (for real this time…) which meant renaming the pack file, TiledMapRenderer to TileMapRenderer, moving and renaming the tiles and pack file (and reindexing) due to new requirements from libgdx.

Updated 2011-06-12: Fixed some graphical glitches reported by Ed (in part 2′s comments). Thanks for all of your help Ed! Additionally, the tutorial is now based on libgdx 0.9.1 (it might have been libgdx 0.9.0 at the time, sorry folks) instead of an arbitrary nightly build, and it uses a modified TexturePacker in place of “manual” pack file generation.

This example is for anyone interested in making Android games, but is unsure where to start. By the end of part 3 you will have a basic Mario-like side-scrolling game with realistic physics, and (hopefully) you will be able to take this example and build something fun.

I’ve learned a few things since writing my previous post on using Tiled Map Editor with libgdx that I’ll apply in this series, things that make building a simple tiled-map game a lot easier. All code found here is released under the Apache 2.0 license, meaning, basically, you can use it for whatever you want. (IANAL, read the license for details.)

This is a much more involved tutorial than you have seen before on this site. There are a lot of different components used here and I tried to avoid cutting corners during explanations.

Continue Reading >>

dAST 0.5

So, as I said earlier, I couldn’t help myself. I had to keep working on dAST. I’ve added a whole new control scheme, updated the main menu and game over screens, and added online tracking of scores. I’ve rejiggered the way the graphics are drawn on the screen and tuned the tick methods, both based on a lot of traceview analysis (profiling). I made a new game layout for large devices, but I’ve only been able to test it on the emulator.

The new control scheme is the most exciting update. Instead of having two “virtual joysticks”, the player can draw a path that the ship is to follow, and then fire from the ship while it is traveling. The further the ship travels along the path the larger the score multiplier goes. I received some early feedback (don’t yet have permission to reveal the name) suggesting this sort of control scheme and I’ve finally gotten around to implementing it. I think I like it quite a bit. It should work well on large format devices, but it works OK on phones, too. It has a couple of rough edges, but I think it’s at least ready for a wider “test” to find out what people think of it. As always, I’m collecting feedback (although sometimes it takes me a while to get to it, as was the case here, d’oh…)

dAST: Future

I know I said I’d release a “final” version, but I just can’t quit it. I’m taking a break from the new game (which is enormously more complex than dAST, oy) to improve dAST. I’m working on a new control scheme, built for tablets but suitable for phones, where you draw the path the ship is to travel. As the ship is traveling along the drawn path you can shoot down asteroids. The further the ship goes on the path, the higher your score multiplier will go, encouraging long paths. Currently, the path drawing works, and the ship travels along it, but I need to add some code to get the ship to move faster on the straight-ish portions of the path. Otherwise it’s kind of boring watching it plug along slowly. I’m going to playtest replacing the fire button area with full-screen fire detection, where you’d press anywhere on the screen to have the ship fire in that direction. Again, useful for tablets, and hopefully suitable for phones.

I found a potentially serious problem that likely caused lower frame rates on some devices, involving 32-bit graphics intermixed with 24-bit graphics. D’oh. Thought I had caught all of those earlier on.

I’m also going to add online leaderboards (with rudimentary cheat detection) and introduce some tracking of control schemes so I can determine whether or not I still need to support the poorly-received “original” controls. I may rename the game, too, although that will probably wait until yet another graphics revamp is ready.

Even after all of the above is done I don’t think dAST will truly be a full game experience. It’s still missing something.

I’ve started twattering small notes about upcoming dAST and other dpk-game things, for when I don’t feel like sitting down to write a whole blog post.

Released dAST 0.4beta

dAST 0.4beta is now on the market. It has all of the features I mentioned in the previous post (excluding those I secretly removed from the post) and one more: a “radar” feature that shows you where enemies and bonuses are when they’re off screen.

Based on my purely unscientific study, the best time to release app updates is in the morning. Doing so nets the greatest number of downloads and plays. This update has also garnered some feedback and ratings, which is nice, even though they both hated it. (I haven’t received any feedback and ratings from any other release except for the first.)

Despite the ratings I am pretty proud of the game, in that it doesn’t have any game-breaking bugs (to my knowledge) and runs well, at least on my device. My plan now is to release a final version next week (ahead of schedule), although it will basically just be a version code update assuming there are no bugs found during the beta. I’ve had a bunch of ideas for my next game but I couldn’t just leave dAST unfinished; once the final release is out I will move on “free and clear”, hopefully to a game that will be better received. (Just a hint: It will not be an arcade game, and it make better use of the fact that it’s on a touchscreen+mobile internet platform.)