Avalander

Members
  • Content count

    155
  • Joined

  • Last visited

Community Reputation

2408 Excellent

About Avalander

  • Rank
    Member

Personal Information

  • Interests
    Art
    Design
    DevOps
    Programming
  1. Hobby: How do you finish your projects?

    I don't do much game development in my free time nowadays, but I've got many other programming related projects going on, and my process is roughly the same. My philosophy is to try to remove or defer as much complexity as possible and get a "complete enough" version of the software as soon as possible. Usually, my personal projects follow these four stages: (1) I have a cool idea that I would like to realise, I spend an evening working on it. Many, not to say most, of my projects get abandoned after this stage. Maybe I'm not that interested, they weren't as fun as I expected or I simply don't have the time to keep working on them at the moment. In any case, I accept this as part of the normal process. I've got way more ideas than I'll ever be able to realise. (2) If I keep working on a project after the first evening, I try to reduce the project to the bare minimum set of core features required to cover the principal idea or use case. Even if I have a lot of cool ideas, I try to push as many as I can to further stages, and have a minimum game/project that I can finish in a few weeks of intermittent work. I know that I will abandon many projects after this stage, so I try to set goals that I can accomplish and have a feeling of completition even if my interest/free time plummets. (3) Now I have a working version of the game, but it probably feels more like a demo than a complete version. It's time to focus on the features that I need to make it feel like a finished product. Again, I try to focus on the features that are strictly required to make the game feel like a complete working version, and that I can hopefully finish in a few more weeks of work. (4) At this stage, I consider that my project is "complete" and I add all the features that I wanted to have but weren't important enough to implement in previous stages. Usually, I will have collected a list of them during the previous stages. I keep working on that set of features, one at a time, until I lose interest in the project. It doesn't matter how far I get, because at this point I have something that already feels complete and deliverable. As somebody once said, "software is never completed, only abandoned", and since chances are that I will abandon it sooner than later, I try to have something that feels complete enough as soon as possible. That doesn't mean that I defer all the cool and interesting features to the end of the project. However, most of the times I can identify one or two interesting ideas that are the core of what I want to do, and defer the rest to later stages.
  2. WoA V - Afterparty/Judging thread

    Yeah, that's exactly how it works. Capture game input into streams, map-fold everything with pure functions and then render to screen. I'll download your game and give it a try this afternoon. I'll get back to you
  3. WoA V - Afterparty/Judging thread

    I've written a post-mortem, if anybody is interested. I've also downloaded a few submissions, but since I don't have Windows, I couldn't play any of them
  4. Play it! | View on GitHub Now that I am slightly recovered after the Week of Awesome, I want to share my thoughts about what went well and what I have learned after this experience. A quite important part of my project was to experiment with functional reactive programming in games, and I promised to share some reflections about it afterwards. I'm going to talk about that in the second part of the post-mortem, which I expect to publish early next week. What was great Community support and feedback The absolutely best thing about participating in this contest was all the encouragement and feedback I got from the community. Big thanks to everybody who took the time to play my game, read my blog entries, post feedback and encouraging comments, and even find and report bugs! My game would have been a lot worse without that feedback. Many people suggested features I hadn't thought of or I had dismissed earlier because I didn't think they were that important. The ability to move to the left and better control of the landing position when jumping are clear examples of this. It was also really motivating to see every day people playing the game and posting new feedback. Browser game I think that going down the browser route was a good idea after all. The cool thing about the browser is that everybody has one. Distributing your game is so easy: no installation or configuration required, and everybody can play it regardless of operative system or installed runtimes. I could upload the game to my VPS since day one, update it often, and have people trying it out, which was great and I think that it made a difference in the amount of feedback I received. What I would do differently Have a level editor The game I delivered is inexcusably short. Once I had the basic mechanics going, it would have been really easy to add more and longer levels. The only reason holding me back was that I didn't have any visual tool to create and edit them. I created the only level in the game by manually editing a JSON file. As you can imagine, that was a tedious job and I decided to invest the little time I had in solving other stuff. Not having a level editor also prevented me from iterating the level and making sure it was fun and challenging enough. Next time, I will make sure to have a visual tool to create levels and maps at hand before the contest starts. Test the delivery format early When I set off to make a browser game, I set up a local development web server to serve the file and recompile and reload the changes quickly. I knew that I would end up delivering an index.html file with a .js bundle and that the judges would load that file from the file system instead of a web server. That should make no difference, right? Wrong! Turns out that Chrome, among other browsers, doesn't allow AJAX requests when loading a file directly from the file system. And guess how the rendering library I used loads spritesheets? Exactly: AJAX calls. I should have tested running the game from the file system since day one. Instead, I only tried it when I was about to upload the final submission. If I had known about the AJAX issue earlier, I could have written my own resource loader, or bundled the game with electron. Instead, by the time I noticed the issue, I didn't have the time nor the energy to do something about it. Even though the game can still be run locally with Firefox, I provided a python script to run it on a local web server, and some judges didn't mind playing it on my VPS, my developer soul still hurts because I wasn't able to deliver software that runs with a single click. Conclusion This community is awesome. I got far more interest and feedback than I expected. I liked the experience of making a browser game, even though at the end it wasn't as smooth as I thought, and I definitely need to get a level/map editor next time. If you are interested in reading my musings about using functional reactive style in games, stay tuned for the second part of the post-mortem.
  5. ProjectCastle How I got so many physics. Files for free.

    Now I could finally play it! It looks cool, I really like what you've done with the buildings falling apart. It's a pity that you couldn't add the aliens, it would have been such a great game! Unfortunately, I can't provide feedback on the code, I don't have much experience with Unity nor C#.
  6. ProjectCastle LastDay.

    Are you sure you uploaded the right file? When I unzip it, I still get a .exe and the folder structure doesn't look like when I build a Unity game for OS X.
  7. ProjectCastle LastDay.

    @Scouting Ninja Please, do! I'm running OSX.
  8. ProjectCastle LastDay.

    It looks fun, I like the idea of destroying buildings! It's a pity I can't try it because I'm not running Windows
  9. WoA V - The Competition Thread

    There we go! Strawberry Alert is as finished as I could manage. @slicer4ever I'm getting connection refused from the submit page. I've attached a zip file to the blog entry, is that good enough?
  10. Strawberry Alert: Day 7

    Play it! | View on GitHub Strawberry Alert is good enough to go. I didn't have time to fix everything I mentioned in my last post, but I could add the following: Support WASD to move. With arrow down (or S) the character crouches, making it easier to avoid enemy fire. The game state is not updated anymore after the level lost dialog appears. There was a bug that the aliens could fire after dying. This is no more. Another bug reduced the player's hit points when a bullet collided from behind (like when an alien fires and the player is slightly past it, the bullet appears with the tail colliding with the player). This isn't happening any longer. Overall, I'm quite satisfied with the end result. The only thing that I really wish I had time to do is improve the collisions that are still a bit wibbly-wobbly. Also, I realised today that the rendering library I use loads the spritesheets via AJAX and, guess what? Some browsers (hello Chrome ¬.¬) don't allow AJAX calls when executing an html file directly from the file system. I'm sure there is a way to fix this, but I don't want to spend the few hours of Sunday left digging into it. The game works fine when running it from the file system with Firefox, at least, and I provide a python script to run a simple web server otherwise. strawberry.zip
  11. Strawberry Alert: Day 6

    Yeah, that should be pretty straightforward to implement! We lefties should support each other
  12. WoA V - The Competition Thread

    End of day six. Almost there!
  13. Strawberry Alert: Day 6

    Play it! | View on GitHub One more day to go. I think that the game is in a pretty good shape already. There are a couple of issues that should be fixed, and I can add more features, but I think it's close to something deliverable. Today I've acted on the feedback I received in my previous entries (big thanks to @slicer4ever, @Thaumaturge and @Scouting Ninja!): I fixed a bug that allowed the player to double-jump while in the air, which, mixed with the wibbly-wobbly collisions, could make it fall through the platform. No more double-jumping. I implemented a proper camera. Before everything was just rendered relative to the player position. Now there's a camera object that moves forward when the player gets to a certain distance from it. Currently, that distance is quite short (100px), I'm considering making it bigger, maybe up to 1/3 of the screen. Thanks to the feature above, now the player can also move to the left. The camera doesn't move back because then it would be too easy to chase aliens that escaped the player. Now it is possible to move a bit the player while in the air, hopefully making it easier to control the landing position. Aliens now shoot. The player loses a life if a bullet hits her, and the level if she loses all her lives. Tomorrow is the last day. I'll be happy if I can add half of the features below: Stop updating the game when the level is finished or lost. Currently, the player can keep moving and fighting even when the level lost dialog shows up. Add a crouching action when the down arrow is pressed, to make it easier to dodge alien fire. Balance the difficulty. I've been able to finish the level with the current settings, but I haven't really tested how hard it is. I want to try out different combinations of alien shooting speed and hit points. Add some sort of feedback when the player is hurt. Maybe a short animation or similar. Make the collisions less buggy. Currently, the sprites sometimes end up on the middle of the platforms instead of the top. Fix walking animation. This one is going to be hard. By the end of the level, the walking animation usually looks slightly off. I'm probably doing something wrong with the rendering library, but I have no idea what it is.
  14. Strawberry Alert: Day 5

    Thanks guys! I'll take your input into account today when I start working on it
  15. WoA V - The Competition Thread

    End of day 5. Short entry because it's Friday.