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/!

58 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 useful information. It will help me a lot to fix the problems with roguelikes pc games,

    ReplyDelete
  19. Fantastic one, really useful information for us. thanks for posting effective blog post.
    Java Training in Chennai

    ReplyDelete
  20. Trystan I dont know if you are still looking at these but I was wondering if theres a way to shrink the ascii characters that way on smaller screens the game will still run without cropping stuff out of the frame.

    ReplyDelete
  21. Hi trystans Good Links I will examine them and see and also I want to know about some niche PMP links I have done my PMP Course in Chennai. I want to explore regarding PMP. So if you have any links regarding just update them thankyou for these links GoodLuck

    ReplyDelete
  22. way to shrink the ascii characters oh...gud work but can it be applied to different domains.
    ms dynamics crm online training

    ReplyDelete
  23. Really it was an awesome article...very interesting to read..You have provided an nice article....Thanks for sharing..
    Android Training in Chennai
    Ios Training in Chennai

    ReplyDelete
  24. Nice tutorial. Full of poor design choices, yet covering most of basic roguelikes concepts. Not really applicable for beginners, but whatever. I agree that the best part of it is the screen system. Well, not particulary PlayScreen. Refactor it with fire.

    ReplyDelete
  25. the blog is aboutAutomated data lineage documentation using #Java it is useful for students and Java Developers for more updates on Java follow the link
    java Online Training

    ReplyDelete
  26. Great survey, I'm sure you're getting a great response.
    end table

    ReplyDelete
  27. Hey there! I must say really good job with the article.Java is considered as one of the secure programming languages used to develop applications. Today more number of businesses has understood the importance of Java web development and so Java keeps on improving itself.Java programming language keeps on updating itself and come with a newest version offering new features.

    ReplyDelete
  28. Good post and I like it very much. By the way, anybody try this increase app downloads? I do not how to use.

    ReplyDelete
  29. • Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updating. Power Bi Online course Bangalore

    ReplyDelete
  30. Really awesome blog. Your blog is really useful for me. Thanks for sharing this informative blog. Keep update your blog...Java Training in Chennai
    Java Training Institute in Chennai

    ReplyDelete
  31. Great! Keep sharing such useful information. I think this is just the beginning & I'm looking forward to more meaningful blogs from you.

    white label website builder

    ReplyDelete
  32. Listing your business data on these free business listing sites will increase on-line exposure and provides new avenues to achieve potential customers.

    High PR Business Directory 2018

    ReplyDelete
  33. Share great information about your blog , Blog really helpful for us . We read your blog , share most useful information in blog . Thanks for share your blog here .
    poker tips

    ReplyDelete
  34. Hey, It really is incredibly fantastic and informative website. Good to discover your site Very well article! I’m simply in love with it.
    โปร โม ชั่ น เล่น บอล

    ReplyDelete
  35. Most of the blogs pretend themselves as most usable and updated blogs with new information but sometime truth might different. I want to share some facts related to this subject which will help people to enhance their skills.
    ย้ายบ้าน

    ReplyDelete
  36. Somewhere the content of the blog surrounded by little arguments. Yes it is healthy for readers. They can include this kind of language in their writing skill as well as while group discussion in college.
    เห็ด หลิน จื อ แดง สกัด

    ReplyDelete
  37. Graceful written content on this blog is really useful for everyone same as I got to know. Difficult to locate relevant and useful informative blog as I found this one to get more knowledge but this is really a nice one.
    ไฮไลท์ฟุตบอล

    ReplyDelete
  38. Your blog is very informative. Eating mindfully has been very hard for people these days. It's all because of their busy schedules, work or lack of focus on themselves. As a student I must admit that I have not been eating mindfully but because of this I will start now. It could help me enjoy my food and time alone. Eating mindfully may help me be aware of healthy food and appreciating food.
    โรงพิมพ์ราคาถูก

    ReplyDelete
  39. I constantly like to read a top quality content having accurate info pertaining to the subject and the exact same thing I found in this article. Nice job.
    คอนแทคเลนส์สี

    ReplyDelete
  40. I am truly inspired by this online journal! Extremely clear clarification of issues is given and it is open to every living soul. I have perused your post, truly you have given this extraordinary informative data about it.
    ผ่อนแอร์

    ReplyDelete
  41. Professionally written blogs are rare to find, however I appreciate all the points mentioned here. I also want to include some other writing skills which everyone must aware of.
    โรงพิมพ์

    ReplyDelete
  42. Excellent blog, I wish to share your post with my folks circle. It’s really helped me a lot, so keep sharing post like this
    Selenium Training in Chennai | Selenium Training in Bangalore | Selenium Training in Pune

    ReplyDelete
  43. It is really a great work and the way in which u r sharing the knowledge is excellent. Thanks for helping me to understand basic concepts. Thanks for your informative article. Java Training in Chennai | Pega Training in Chennai

    ReplyDelete
  44. Professionally written blogs are rare to find, however I appreciate all the points mentioned here. I also want to include some other writing skills which everyone must aware of.
    Sailpoint Training From India

    Dellboomi Training From India

    Qlikview Training From India

    ReplyDelete
  45. Thanks for sharing this wonderful blog. Helpful article ! Kindly visit us @ Chocolate gift box

    ReplyDelete
  46. Nice tutorial... Quite detailed and information rich post.. loved it.
    http://www.writersonlineessay.org/social-crm-with-ms-dynamics-crm/

    ReplyDelete
  47. Nice information. It was very useful, thanks for sharing!!
    DevOps Online Training

    ReplyDelete