tag:blogger.com,1999:blog-9268389004701344572024-03-18T20:35:49.399-07:00No Idea What I'm DoingA step-by-step look into the process of making a videogame, learning as I go. As a side effect, this is turning into a newbie tutorial for Flixel and AS3 game design.Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-926838900470134457.post-87432254095760546002016-08-04T20:16:00.000-07:002016-08-04T20:16:15.934-07:00Raycasting woesWhat I'm working on now is a raycasting engine, like was used back in the days of Wolfenstein 3D. It's not a complicated technique, really, but it's a little fussy, and I just couldn't get my last attempt to quite work right.<br />
<br />
My original attempt was based partly on trying to convert <a href="http://www.playfuljs.com/a-first-person-engine-in-265-lines/">A first-person engine in 265 lines</a> from javascript to haxe, with <a href="http://lab.andre-michelle.com/raycaster-v3">this actionscript-based raycaster</a> as a second opinion. I never quite got the math to work right, and it was running painfully slowly anyway. I might have been able to work it out if I'd been more diligent about putting debugging tools into my code, but I instead went the simpler route of ripping everything out and starting over!<br />
<br />
<br />
This time, I'm using <a href="http://lodev.org/cgtutor/raycasting.html">a technique from Lode's Computer Graphics Tutorial</a>. Instead of doing a bunch of trigonometry for every column to be rendered like the previous technique I was trying to use, this technique uses vectors, basically just calculating once per frame instead of once per pixel-column. It turned out to get a much better framerate even without doing any optimizations, and as an added bonus:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/yxMLo9C.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="206" src="https://i.imgur.com/yxMLo9C.gif" width="320" /></a></div>
It actually works!<br />
<br />
Next up is to draw the ceiling and the floor, instead of just using solid colors.<br />
<br />
I've tossed the code up on <a href="https://bitbucket.org/Chipacabra/raycaster">bitbucket</a>, if you want to poke around at it. Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com3tag:blogger.com,1999:blog-926838900470134457.post-28658205619513666812016-07-07T20:28:00.000-07:002016-07-07T20:28:20.740-07:00So what happened?<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZpHRJJ5OGGBE_VTd-d4MYq6QyOBPNh3R7Wt82CYBK-APPyRxEEvDvxCFB9VBY5QlGGxPcnHvIWkQFuOooXdluf4y94FgqlyywjvJNYQ4i5SEUolJwVCq2cDthBltrf01k62hv_vTRXAZW/s1600/ihniwid.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="go read kill 6 billion demons by the way" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZpHRJJ5OGGBE_VTd-d4MYq6QyOBPNh3R7Wt82CYBK-APPyRxEEvDvxCFB9VBY5QlGGxPcnHvIWkQFuOooXdluf4y94FgqlyywjvJNYQ4i5SEUolJwVCq2cDthBltrf01k62hv_vTRXAZW/s400/ihniwid.jpg" title="" /></a>Gosh, it's been a while, huh? Well, if you're hoping that I'm rising phoenix-like from the ashes to complete Project Jumper... well, I'm not. Sorry! But it's not all bad news.<br />
<br />
So what actually happened is that, around the time I was looking into updating all my code to the new (at the time) version of flixel, my laptop exploded. Like, loud noise and smoke and a bit of fire exploded. It took a while before I even got a working machine that I COULD program on, and by then there were just other things taking up my time and I didn't have the motivation to jump right back in.<br />
<br />
Fast forward a bit more, and you see the slow death of Flash, and Flixel getting ported over to Haxe instead. I did, at one point, consider jumping back in and porting Jumper over to Haxe myself but, uh... <a href="http://haxeflixel.com/demos/ProjectJumper/">Someone beat me to it.</a> (That was pretty hilarious to discover when looking for haxeflixel tutorials!)<br />
<br />
At this point, I don't think there's a lot of value to me personally in revisiting Jumper. It's not like I ever had a vision of a complete game in mind, I just wanted to learn. And I learned a lot! And judging from some of the responses I've gotten, people have also learned from reading, and that means a lot to me. But picking up where I left off isn't what I want to learn right now; it's been so long that I'm almost starting from scratch anyway, so I'm going to try new things.<br />
<br />
I've got a new, unnamed project I'm working on now. Again, not a complete game, I just want to learn some techniques. This time, I'm looking into <a href="https://haxe.org/">Haxe</a>, partly because I might come back to Haxeflixel some day, and partly just because I really like the FlashDevelop IDE (they even made <a href="http://www.haxedevelop.org/">a haxe specific version!</a>)<br />
<br />
I'm not sure if I'll keep nearly as detailed a diary of my work as I did for Jumper, but I'm sure I can't keep myself from sharing at least a little. In the meanwhile, a peek at what I'm doing:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/MXVBIe5.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Flawless" border="0" height="206" src="https://i.imgur.com/MXVBIe5.gif" title="" width="320" /></a></div>
<br />
<br />
<br />
<br />
It's, uh, a work in progress. (I know where the problem is and I think I know how to fix it, I just think this looks amusing.)Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-92227105247789353722016-06-29T20:26:00.000-07:002016-06-29T20:26:27.576-07:00*blows dust off of blog*<br />
<br />
Not entirely dead yet.Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-50851549747976499092011-04-01T19:13:00.000-07:002011-04-01T19:13:28.343-07:00Gearing up to 2.5The Flixel team (i.e. Adam Saltman) is hard at work on the next version of Flixel. If you've been watching the <a href="http://twitter.com/flixation">twitter feed</a>, you can see that it's a pretty big upgrade. I'm digging the multiple cameras, myself. Anyway, I don't know yet how difficult it would be to migrate a project in progress from the current flixel to 2.5. My tentative plan is to do another update or two for Jumper (Yes, I'm still working on it, just not able to devote a lot of time to it these days) under the current library, and then take a swing at the conversion process.Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-60144314164436355102011-03-29T13:06:00.000-07:002011-03-29T13:06:58.129-07:00BFXRIf you recall, I used DrPetter's program <a href="http://www.drpetter.se/project_sfxr.html">sfxr</a> to make the sound effects for Project Jumper. Well, the lovely thing about open source code is that people keep poking away at it, and now <a href="http://www.increpare.com/">increpare</a> has created a new, feature overloaded version that he's calling <a href="http://www.bfxr.net/">bfxr</a>. I've been getting pretty good sounds out of the thing by just mashing buttons at random. Just imagine what someone that actually knows what all those sliders mean could do!Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-2653056647817996592011-03-19T00:09:00.000-07:002011-03-19T00:09:37.407-07:00Not all effort results in progressI got it in my head today to make a useful variation of FlxSprite. Basically, I just want to add some simple masking, a function that will let you mask of portions of the sprite as transparent.<br>
<br>
The actual pixels of a sprite are stored in a BitmapData object called _pixels. So my bright idea was to store all the masking info into another BitmapData object called _alphamask, and combine the mask with original image to get the masked out image. A little research, and it looks like BitmapData.copyChannel() should let me transfer the alpha channel data from _alphamask to _pixels without touching anything else on the image.<br>
<br>
<a href="http://chipacabra.blogspot.com/2011/03/not-all-effort-results-in-progress.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-80785882591451383322011-03-15T02:00:00.000-07:002011-03-15T02:00:36.767-07:00OrganizationOne of the things that doesn't leap out at you right away as a new game developer is just how many files start building up, and how important it is to keep them organized. The project I'm working on right now (yeah, the one that's keeping me from Project Jumper. Sorry!) started out in my head as a pretty simple Arkanoid style game. Surely that won't involve too many files, right? I'll just use the standard src/com/developer/name file structure, and that should be fine.<br />
<br />
Hah. Maybe I'm just too addicted to making new classes for every little bit of functionality, and maybe I could cram all my graphics into spritesheets, but still, my folders are becoming a cluttered mess. The OCD part of me that makes me rename/reorganize all my music to a very strict scheme is going insane that I haven't sorted my files into categories and subcategories.<br />
<br />
Well, while this project is too far along to make a reorganization worthwhile, I think it's actually a good lesson. The aggravation I'm starting to suffer at the end of this small game will teach me to avoid the same aggravation on a larger scale when I start working on more ambitious things. This is just another of those times when mistakes are actually more beneficial than success.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZjNApXxhmJVAlUTeeaauP4jhRRIaNOddM6iyoWVQcNpMKnlw4R0Z9gfmEFqSQehX8Jk0PxDKBSM0ZFoEpkjPlxRMo9NGpXhWve4jJWRmR2iXnpn8hLSZ5wVspriyrgJ7znLLy2-_OIJc_/s1600/Bluearcscreenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZjNApXxhmJVAlUTeeaauP4jhRRIaNOddM6iyoWVQcNpMKnlw4R0Z9gfmEFqSQehX8Jk0PxDKBSM0ZFoEpkjPlxRMo9NGpXhWve4jJWRmR2iXnpn8hLSZ5wVspriyrgJ7znLLy2-_OIJc_/s320/Bluearcscreenshot.png" width="320" /></a></div>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com1tag:blogger.com,1999:blog-926838900470134457.post-4571144197361653202011-03-10T09:49:00.000-08:002011-03-10T09:49:26.416-08:00When to start level designAs I'm getting closer to turning Project Jumper into an actual game, it's time to start putting some levels together. It got me thinking about the logistics of level design, and when you should get started on the process. For Jumper, I've put it off as long as I can, because I (intentionally) haven't really had any direction in mind as I make this game. If I include doors, teleporters, and spikes in the level, then I'm committing myself to those things. On the other hand, if I just throw together game elements as I think of them, I can slap them down willy-nilly onto the test map just to demonstrate them, but it doesn't really make for a good game level.<br />
<br />
I suppose in a real project, the ideal solution would be to do all your planning first, so that it doesn't really matter what order you do things, you're always following the script. The thing is, that's not really practical for a solo project where you're not even entirely sure what you'll be able to execute successfully. It would suck to design 10 large levels that rely on a rope swinging gimmick, only to find out that you're not going to be able to make a satisfying rope. Or whatever.<br />
<br />
On the other hand, if you DO make the levels ahead of time, it gives you direction in your coding. You already know what your game has to be able to do, it's just a matter of implementing it all. I think this is probably the best way to go once you've got some confidence in your ability.<br />
<br />
There is a third option that occurs to me, though, and I just might end up implementing this for Jumper. Make small levels as you need them, each one implementing whatever new mechanics you've come up with since the last one. At least in Jumper's case, this could let me keep bolting things on indefinitely, or at least until the program just collapses under its own weight.Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-46634228484083043372011-03-01T14:47:00.000-08:002011-03-10T09:50:21.892-08:00Memory managementProject Jumper isn't really having any memory issues yet, but sooner or later there's a good chance that it will come up, especially since I'm not doing a thing to conserve memory. Fortunately, someone who's paid more attention to this sort of thing than I have has put up a blog post on this topic. If you're worried about overloading your RAM, <a href="http://coldconstructs.com/2011/03/memory-management-in-flixel/">check it out</a>.<br />
<br />
Honestly, this is as much a memory aid for myself as anything else. Uh, no pun intended.Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-55073519602675189672011-03-01T14:30:00.000-08:002011-03-02T18:19:06.877-08:00Project Jumper Part 13: Push and ShoveMan, it's been a little while, hasn't it? I've been poking around with other projects lately, along with the oh-so-pleasant jobhunting process, so Jumper hasn't been getting my full attention. But I've reached a point in that other project where I've realized I have to tear out a whole big chunk and rewrite it. And I don't really want to right now. So here I am!<br>
<br>
Actually, this is a weakness I've long recognized in my own creative process. Maybe you can sympathize. I start working on an idea, and then when I'm not 100% certain about which direction go, I stall because I'm afraid of taking a wrong path. For some reason, the fear of having to throw out any amount of work makes me more likely to do nothing at all. Obviously, this isn't very productive. Even partially unusable progress is still progress, and nothing educates like failure. Heck, I'm even using version control, I could always just rewind to before I went wrong, and no harm done.<br>
<br>
Oh, well. The nice thing about Jumper is that I've got real motivation to press forward even if I don't know what I'm going to do. Even a trainwreck would make for a good blog post! So anyway, let's get back to work.<br>
<br>
<a href="http://chipacabra.blogspot.com/2011/03/project-jumper-part-13-push-and-shove.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com3tag:blogger.com,1999:blog-926838900470134457.post-28098839166837746252011-02-20T17:33:00.000-08:002011-02-20T17:34:36.855-08:00Open Thread: Got any questions?On various forums and such, I always see questions about how to get the basics of programming working. I thought I'd just leave a spot here for people who are trying to follow along with Project Jumper, but are still confused.<br />
<br />
So, go for it. Is there anything in Jumper that I've done that you don't understand? Anything I covered too quickly? Even basic stuff that I haven't covered at all?Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com2tag:blogger.com,1999:blog-926838900470134457.post-27823179376184894672011-02-12T23:43:00.000-08:002011-03-10T09:50:21.893-08:00Organizing your gameNot too long ago, I mentioned how neat it was that FlxG has properties on it that you can access from any of your classes, like FlxG.score and FlxG.state. I was considering making my next update all about how to use that concept to your advantage, but someone's already beaten me to it. <a href="http://www.photonstorm.com/archives/1136/flash-game-dev-tip-1-creating-a-cross-game-communications-structure">Photon Storm has a new post up</a> that covers everything I would have said, so you should probably just go there and read it. :DChipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-10879896031862835362011-02-07T20:03:00.000-08:002011-02-07T20:27:02.865-08:00Side Project: Loading and Saving local filesFor a side project I'm working on, I need to make a map editor, since my data will be structured in a way that's not really convenient when using DAME or whatever. That, and it's a good learning experience.<br>
In any case, I need to be able to load and save .xml files that are stored locally on my harddrive. Apparently, this used to be a huge pain in the neck to do with Flash, and I should probably be doing this sort of project in AIR anyway, but it turns out there's a fairly way to do this.<br>
NOTE: You have to be using Flash Player 10 for this to work.<br>
<br>
<a href="http://chipacabra.blogspot.com/2011/02/side-project-loading-and-saving-local.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-63244346202812341602011-02-05T23:05:00.000-08:002011-02-07T20:27:02.866-08:00Project Jumper Part 12: Odds and EndsThings are almost starting to look like an actual game at this point. In fact, I'm almost not embarrassed to show people the product to date. From here on out, I'm going to try to keep the most <a href="http://www.kongregate.com/games/Chipacabra/project-jumper">current version of the game</a> up on Kongregate, mostly just to try and give it a little more visibility. I'll still be posting the incremental versions as well, so nothing's changing there.<br>
<br>
A few posts ago, evgeny asked about integrating flash movieclips into flixel, and about multiplayer. Unfortunately, I don't think I'm going to be covering either of those in much depth, if at all, for a couple different reasons.<br>
<br>
Multiplayer is a great thing, but it's actually fairly tricky to pull of in Flash. Basically, it's all about how you get the players communicating with each other. The most direct way is have both players' clients talk directly to each other, like a direct IP connection or your classic LAN game or something. Unfortunately, Flash doesn't really provide the tools to make this feasible. Another way to do it is the client-server model, where each player's client dials in to a central server to get the data it needs. This actually does work, but it requires you to actually have a server, and that's a little beyond the scope of this tutorial, I think.<br>
<br>
As for integrating movieclips, actually that doesn't seem like a terribly hard thing to do. The only thing is that I don't have the actual Flash development tools, nor am I likely to get them any time soon, nor do I really know how to create/animate vector art in general. So, really, I'm just not the person to be asking! If you want to go about it, maybe <a href="http://flashgamedojo.com/wiki/index.php?title=Cutscene_Template">start with this code snippet</a> on FlashGameDojo, and run from there.<br>
<br>
If someone either has a good tutorial on either of these topics, or would like to write one, feel free to let me know so I can either the tutorial up here or provide a link or whatever.<br>
<br>
OK, time to start tweaking things!<br>
<a href="http://chipacabra.blogspot.com/2011/02/project-jumper-part-12-odds-and-ends.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com1tag:blogger.com,1999:blog-926838900470134457.post-4434970564979769152011-02-02T03:49:00.000-08:002011-02-07T20:27:02.866-08:00Project Jumper Part 11: They're Everywhere!<div style="margin: 0px;"></div><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4txh459l7SKQTn7LcHFS0e-PCGNacuKVubvFrFeuOO2YZsFYm1dhD-GJo-vLevlJ9NepdDeYtDxkCipH8nuOGrBP-u1n6cMZq920yXbIJsbr184z8yNMfY0-VKHQn6S5wmleEkYOiLCht/s1600/A+new+challenger+has+arrived.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4txh459l7SKQTn7LcHFS0e-PCGNacuKVubvFrFeuOO2YZsFYm1dhD-GJo-vLevlJ9NepdDeYtDxkCipH8nuOGrBP-u1n6cMZq920yXbIJsbr184z8yNMfY0-VKHQn6S5wmleEkYOiLCht/s1600/A+new+challenger+has+arrived.png"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A new rivalry is born!</td></tr>
</tbody></table><br>
<div style="margin: 0px;">You know, there's a great bit play area here; it's way to much for even the most epic of duels between helmutguy and Skel-monsta. We need to add a little more danger to the world. To that end, it's time to give Skel-monsta some friends.</div><div style="margin: 0px;"></div><div style="margin: 0px;"></div><a href="http://chipacabra.blogspot.com/2011/02/project-jumper-part-11-theyre.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-72965114729010803982011-01-30T20:40:00.000-08:002011-01-30T20:40:58.565-08:00Still activeJust making a note here that I haven't stopped working on Project Jumper, I'm just really slow. Also, I'm planning out a new, better organized project to make better use of what I'm learning here. Anyway, the next installment should be coming out just as soon as I get it all worked out. Thanks for your patience.Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com1tag:blogger.com,1999:blog-926838900470134457.post-84958064929601497402011-01-22T23:01:00.000-08:002011-02-07T20:27:02.867-08:00Project Jumper Part 10:The Beginning and the (Bad) EndThere's starting to be an actual game here, sort of kind of, so this seems like as good a time as any to actually give the game a little structure. That is, let's make an opening menu, a death screen, and let the game reset when you need to.<br>
<br>
An opening menu is a good time to have a pretty splash screen, showcasing your artistic talent and getting the player excited about what he's about to play.<br>
<br>
<div style="text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoKHzbNf5rGSaJvtOoe5ERIxImiDIojhbOJy_GAuQARFR3HenWcMZ2YOG_jG_v9CvCtsXrgGa-Jr6qJhyphenhyphen9a_k1qz4l4gyRRb7TDWUP64Req3ibkHVksnK1PDpWbNAN1J_CV8LJ5x3VNwxx/s1600/pointer.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoKHzbNf5rGSaJvtOoe5ERIxImiDIojhbOJy_GAuQARFR3HenWcMZ2YOG_jG_v9CvCtsXrgGa-Jr6qJhyphenhyphen9a_k1qz4l4gyRRb7TDWUP64Req3ibkHVksnK1PDpWbNAN1J_CV8LJ5x3VNwxx/s1600/pointer.png"></a></div>I'm going to use plain text on a plain background, and the finest crafted monochrome yellow triangle as a pointer. Ah, yeah. <br>
<br>
<a href="http://chipacabra.blogspot.com/2011/01/project-jumper-part-10the-beginning-and.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com3tag:blogger.com,1999:blog-926838900470134457.post-91291340938093114692011-01-18T17:25:00.000-08:002011-01-21T09:04:47.689-08:00Project Jumper: Interstice IIIAgain, stuff added in bold is new. Not that there's a lot of it.<br />
<br />
<ul><li><strike>Display map</strike></li>
<ul><li><strike>Scrolling</strike></li>
<li><strike>Layers (e.g. background)</strike></li>
</ul><li><strike>Display player sprite</strike></li>
<li><strike>Move player sprite</strike></li>
<ul><li><strike>Left-right</strike></li>
<li><strike>Jump</strike></li>
<ul><li><s>Mario style controlled jumps</s></li>
</ul><li><s><b>Ladders</b></s></li>
</ul><li><strike>Map collision</strike></li>
<ul><li>Tiles that can be jumped through from below</li>
<li>Harmful tiles</li>
<li>Special effect tiles</li>
<li>Different environment types, eg water</li>
</ul><li>Text boxes/popup messages</li>
<li><strike>Sound/Music</strike></li>
<ul><li><strike>Background music</strike></li>
<li><strike>Sound effects</strike></li>
</ul><li>Collectables/powerups</li>
<li>Camera</li>
<ul><li><strike>Follow player</strike></li>
<li><strike>Stay in map</strike></li>
<li>Follow target other than player</li>
</ul><li>Cut scenes</li>
<li>Changing levels</li>
<li>Continous map (load area changes seamlessly)</li>
<li>Main menu</li>
<li>Save games</li>
<li>HUD</li>
<li><strike>Enemies</strike></li>
<ul><li><s>Ability to kill/be killed</s></li>
<li>AI/pathfinding</li>
</ul><li>Multiplayer</li>
<li>Weapons/Ability to fight enemies</li>
<ul><li><s>Projectiles</s></li>
<li>Stompin'</li>
</ul><li>Different movement types</li>
<ul><li><s>Climbing</s></li>
<li>Swimming</li>
<li>Flying</li>
<li><s>Double jump</s></li>
</ul><li><b>Editable controls</b></li>
<li><b>Pushable blocks/crates </b></li>
</ul><s><br />
</s>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-40322388752190826322011-01-17T17:04:00.000-08:002011-01-17T17:05:24.257-08:00Project Jumper Part 9: Agility TrainingIt's time to improve helmutguy's maneuverability. I've got a few things that I want to do here.<br>
<ul><li>Mario style jumping</li>
<li>Double jumping</li>
<li>Ladders</li>
<li>Walljumping</li>
</ul> I'm not sure I'll actually get to all of them, though. Remember, I'm making this up as I go.<br>
<br>
<a href="http://chipacabra.blogspot.com/2011/01/project-jumper-part-9-agility-training.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com6tag:blogger.com,1999:blog-926838900470134457.post-42766715348627251622011-01-12T15:39:00.000-08:002011-01-26T18:15:14.471-08:00Project Jumper Part 8: This isn't stomp at all! Fixing the delay in embedded soundsI fully intended to spend this update on giving helmutguy a more robust set of physics, including the ability to stomp on Skel-Monsta's head. Instead, that stupid delay at the beginning of embedded mp3s has been driving me crazy, so I'm going to fix it once and for all. While we're at it, we'll get our first taste of editing the actual flixel files to suit our needs.<br>
<br>
<a href="http://chipacabra.blogspot.com/2011/01/project-jumper-part-8-this-isnt-stomp.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com2tag:blogger.com,1999:blog-926838900470134457.post-252035171969001282011-01-09T00:18:00.000-08:002011-01-10T16:50:29.589-08:00Project Jumper Part 7: Lock and LoadWell, I think that helmutguy has been defenseless long enough. Let's give him some way to fight back. I'm going to go with two different abilities; that should establish some basic principles.<br>
<ol><li>Pew pew lasers</li>
<li>STOMP</li>
</ol><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5-HstDKlw8iNJvHCjIpAy3BJdCn9NLCkVAytvzz4lT2t2qHskuBIeC7eDhsEn8KIsEgGQmTz51QATAZrhst2qBJY2W24LaG4ekkCPcdq7Kw3ELQd5-AjGt9NNxMeh35v746Y0rWHwmyU0/s1600/bullet.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5-HstDKlw8iNJvHCjIpAy3BJdCn9NLCkVAytvzz4lT2t2qHskuBIeC7eDhsEn8KIsEgGQmTz51QATAZrhst2qBJY2W24LaG4ekkCPcdq7Kw3ELQd5-AjGt9NNxMeh35v746Y0rWHwmyU0/s200/bullet.png" width="200"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This is really only 5 pixels tall, but it looks pretty sweet </td><td class="tr-caption" style="text-align: center;">zoomed in.</td><td class="tr-caption" style="text-align: center;"><br>
</td></tr>
</tbody></table><a href="http://chipacabra.blogspot.com/2011/01/project-jumper-part-7-lock-and-load.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com12tag:blogger.com,1999:blog-926838900470134457.post-78466088881849587452011-01-08T12:59:00.000-08:002011-01-08T14:28:45.720-08:00Need more help with FlashDevelop?This is as much a bookmark for myself as anything else. Michael Williams has a <a href="http://active.tutsplus.com/tutorials/beginners-guide-to-flashdevelop-intro-basix/">tutorial over on tutsplus</a> that explains a lot about how and why to use FD either instead of or alongside the official Flash IDE. It also has a lot of tips and tricks to help you code faster and more efficiently. Be sure to check out the comments also, there's some good tips in there. I've now got a bunch of new post-it notes next to my monitor with keyboard shortcuts I didn't know about before.Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-18381283710380632912011-01-05T17:09:00.000-08:002011-01-05T17:09:08.455-08:00Project Jumper: Interstice IILet's just take a look at our progress so far. Anything bold is new stuff I've thought to put on the list.<br />
<ul><li><strike>Display map</strike></li>
<ul><li><strike>Scrolling</strike></li>
<li><strike>Layers (e.g. background)</strike></li>
</ul><li><strike>Display player sprite </strike></li>
<li><strike>Move player sprite</strike></li>
<ul><li><strike>Left-right</strike></li>
<li><strike>Jump</strike></li>
<ul><li>Mario style controlled jumps </li>
</ul></ul><li><strike>Map collision</strike></li>
<ul><li>Tiles that can be jumped through from below</li>
<li>Harmful tiles</li>
<li>Special effect tiles</li>
<li><b>Different environment types, eg water </b></li>
</ul><li>Text boxes/popup messages</li>
<li><strike>Sound/Music</strike></li>
<ul><li><strike>Background music</strike></li>
<li><strike>Sound effects</strike></li>
</ul><li>Collectables/powerups</li>
<li>Camera</li>
<ul><li><strike>Follow player</strike></li>
<li><strike>Stay in map</strike></li>
<li>Follow target other than player</li>
</ul><li>Cut scenes</li>
<li>Changing levels</li>
<li>Continous map (load area changes seamlessly)</li>
<li>Main menu</li>
<li>Save games</li>
<li>HUD</li>
<li><strike>Enemies</strike></li>
<ul><li>Ability to kill/be killed</li>
<li>AI/pathfinding</li>
</ul><li>Multiplayer</li>
<li><b>Weapons/Ability to fight enemies</b></li>
<ul><li><b>Projectiles</b></li>
<li><b>Stompin'</b></li>
</ul><li><b>Different movement types</b></li>
<ul><li><b>Climbing</b></li>
<li><b>Swimming</b></li>
<li><b>Flying</b></li>
<li><b>Double jump</b></li>
</ul></ul><b><br />
</b>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com0tag:blogger.com,1999:blog-926838900470134457.post-11467966825199051702011-01-05T17:00:00.000-08:002011-01-12T16:28:42.216-08:00Project Jumper Part 6: Sound; Bleeps Bloops and Frustrated ScreamsOK, time to buckle down and get sound sorted out. You guys have no idea how super excited I am this. No idea.<br>
<br>
Actually, for the most part it's not too bad. Yeah, Flash only lets you embed mp3 files. But a lot of the time, that'll work just fine, and if the limitations aren't anything that will affect you, then everything is gravy.<br>
<br>
Obviously, we're going to need some sounds. Let's make a quick shopping list:<br>
<ul><li>Background music</li>
<li>Player jump</li>
<li>Player death</li>
</ul><br>
<a href="http://chipacabra.blogspot.com/2011/01/project-jumper-part-6-sound.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com5tag:blogger.com,1999:blog-926838900470134457.post-40528340715348683452011-01-01T00:34:00.000-08:002011-01-08T14:28:45.721-08:00Project Jumper Part 5: Killing the player, aka Failure Is Always an Option.Happy New Year, everyone! I hope you had the most excellent of holidays. Me, I'm celebrating the new year by getting helmutguy killed.<br>
<br>
Incidentally, my original plan for this installment was to get started with sound. On the surface, it seem like it's a straightforward and simple thing to do, right? Make sound, embed the sound into your program, play the sound when appropriate. Done. Simple. If only! It turns out, you can't embed a .wav file into flash! It only supports mp3s. I could just convert all the sounds I make into mp3 format first, but there are certain technical reasons why that's not super great for sound effects. There are workarounds, but I'm going to fiddle around with them and see what works best.<br>
<br>
Meanwhile, it's time for danger!<br>
<br>
<a href="http://chipacabra.blogspot.com/2011/01/project-jumper-part-5.html#more">Read more »</a>Chipacabrahttp://www.blogger.com/profile/07733152134515137655noreply@blogger.com7