Thursday, January 21, 2016

roguelike tutorial 00: The table of contents

People seem to like my roguelike tutorial!

For those who want to try making your own roguelike in java, here's the links to each of the 20 posts in my little tutorial I did a few years ago. I try to take it one small step at a time, explain why I'm doing what I'm doing, teach a bit of programming, and move forward with each post.


And, because it's always a good idea to pause and reflect:

When you make something cool, or even come up with a neat idea, let us know on /r/roguelikedev/!

29 comments:

  1. I'm currently working through your tutorial because I love roguelikes and need more Java experience for university. You did a good job on explaining, naming and using methods and classes so beginners understand what they do. Writing the code and seeing how the game develops over time really makes me see how everything engages with each other. The way you link to articles that explain you decision is also useful. I find it good that you note that in some cases it's not the most efficient/best way to write that code method/class, but that it's easy to understand.
    I also like that sometimes you let the Reader figure out the rest lol

    You could've written a post just about cleaning up the code every 10 tutorial parts or so. Cleaning up is something that has to be learned first aswell, since you work with the code for quite some time, at least I personally, become so used to it that I have a hard time cleaning it up. What I feel is kinda missing from AsciiPanels side is user input (writing the name of the character) and maybe "animations" (e.g. arrow flying, fire flickering, barrel exploding).

    Overall I really enjoyed it and I'm thankful that you wrote this. It's definitely inspiring and finally I can bring some of my ideas to, uh, paper.

    ReplyDelete
  2. I'm a big fan of your work! Past years I've re-done your tutorial, with a java graphical library here: http://randomtower.blogspot.it/p/roguelike-tutorial.html

    I hope you still work on roguelike, I'd like to see more of your games!

    ReplyDelete
  3. I used this tutorial a couple of years ago and it was really useful. Shortly after I completed my first Ludum Dare and One Game a Month and these tutorials helped make it possible. Thanks for doing it.

    ReplyDelete
  4. Hello Trystan! I do not know if you still check comments often, but I have a program question. I am making a survival rpg using a edited version of your roguelike. I have created a spawn area encased by walls and changed the floors to a new tile named inside. There is one door on the spawn room. How could I read the tiles array to see if the player is inside or outside the room? I am using it to power a Boolean. Later the Boolean will be used to determine if the player is 'exposed to the elements'. Help me!

    ReplyDelete
    Replies
    1. There are many ways to do it. Here's a few:
      The Tile type itself can have a boolean indicating if that tile is indoors or outdoors.
      You could have a 2d array of booleans to track if a given point is indoors.
      You could have a Set of points that are indoors.
      You could have a List of Rooms, where each room knows which tiles it contains.

      Delete
  5. This comment has been removed by the author.

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. Applets form an integral part of Java software development. Technically, applets are specialized form of Java program that are embedded inside a web page and runs simultaneously with the browser. Practically, applets can be perceived to be both, revolutionary means of creating dynamic web applications as well as a major vow of every developer's life. See more programming assignments

    ReplyDelete
  9. Hi, i'm following your tutorial but i saw that "@" walks over walls. How can i fix it?

    ReplyDelete
    Replies
    1. How far have you gone through the tutorial?

      Ideally, you'll add in collision detection at some point in the movement logic to prevent it from walking over walls, monsters, and other blocking items.

      Delete
  10. I've put your github project into jitpack, people using Maven can get it in a very straightforward way: https://jitpack.io/#trystan/AsciiPanel/e0c4372ad0

    If you could add a Tag when you up the release (or even do a "proper" release in github, which automatically adds a tag if I recall correctly) would make it look much nicer, but even using the commit it does work.

    Instruction to use it with maven are in the link of course ;)

    ReplyDelete
  11. Hi Trystan!
    So I am working through your tutorial on a mac and realized that AsciiPanel.java isn't compatible with it.
    I posted this on reddit (https://www.reddit.com/r/roguelikedev/comments/5862o7/all_of_my_java_output_is_blue/) and was wondering if you have a solution or fix for ascii panel.
    Thanks!

    ReplyDelete
  12. This comment has been removed by the author.

    ReplyDelete
  13. Java exceptions provide a way to process synchronous errors such as divisions by zero and out-of-range array indexes, and this article offers top practical guidelines on their use. The article includes when to use Exceptions, when you neither catch nor throw exceptions and (importantly) when to use standard Java exceptions. See more java homework answers

    ReplyDelete
  14. Nice content with valuable information. Thanks for sharing.
    Java Training institute in Velachery

    ReplyDelete
  15. Good and interesting information shared here.

    ReplyDelete
  16. What’s up every buddy, it’s a impressive entertaining at at this place watching these funny YouTube videos at here, nice stuff, thanks to admin of this site
    Curso java

    ReplyDelete
  17. I'm trying to use AsciiPanel for writing a roguelike, but I have a problem that the characters are super small in the frame, and I can't find how to manipulate the size of them. It may be that I'm using Mac hardware with Windows software, but I don't think that should matter. Any help would be appreciated!

    ReplyDelete
    Replies
    1. Nevermind! I just had to get a larger tile set, as the tilesets used were way to small for hd screens.

      Delete
  18. Thanks for the information. Helped us to convince most on how this process works and what they could achieve by following these guidelines.
    Bangalore Web Designing Company, Web Development Company Bangalore

    ReplyDelete

  19. Very Useful Blog I really Like this and i will refer this...
    blog

    ReplyDelete
  20. Thanks for the useful information. It will help me a lot to fix the problems with roguelikes pc games,

    ReplyDelete
  21. It was a great information and Its really worth reading it. The author did an mind blowing work by describing each and every concept in detail. Thanks for such an informative post. Please keep up your good work.
    Engineering Colleges in Chennai

    ReplyDelete
  22. Hai this Post Really Helped me a lot .Iam searching Java Training Institutes. It’s really helpful for me. keep sharing tutorials????????????????

    ReplyDelete
  23. I have read your blog and i got a very useful and knowledgeable information from your blog.You have done a great job . If anyone want Java Training in Chennai, Please visit our page Java Training in Chennai

    ReplyDelete