[Open Source] RandomRPG

PROJECT ENDED

Download
Source Code
Documentation
Map Example

This is not a finished game, currently i still need to add a combat system of some sorts and a skill system…
And working multiplayer will also be coming…
When it is finished it is supposed to be a Random RPG.
Quests and Maps shall be Random :smiley:

Currently it has:
Random Terrain
Enemies (with somewhat working AI)
Day-Night Cycle
Dynamic Item System
Map (Movable shift + click & drag)
Save Map (ctrl + z) - saves the map as “map.png” in the game’s current directory
Screenshot (F12) - Saves a screenshot to the Desktop (Currently only tested on windows. It saves to System.getProperty(“user.home”) + " /Desktop")
Cheats (ctrl + c)

  • “sprint” makes you walk faster
  • “debug” shows debug information (Movable shift + click & drag)
  • “setpos” sets position (setpos 0-max:0-max, max is the World Size - 1)
  • “settime” sets time (settime 0-70) //Not complete. It will only set time, it will not flip the day-night cycle…
    Arguments
  • “-portable” makes the game save data in current directory…
  • “-volatile” uses a volatile image, which increases FrameRate on some systems.

Config File:
It exists in ADDPATA/.RandomRPG(on windows) or USERHOME/.RandomRPG(on other systems)

Properties:

  • “debugpos” contains debuginfo position
  • “mappos” contains Map position
  • “sync” Aprox FPS, you can probably lower this to around 15, because there are no animations at all. This will lower CPU Usage.

If someone could test it and give feedback,
I will fix any bugs/glitches, if you find some.

If anyone wants to join the project, pm me
Really need a graphics artist(Pixel Art)
Currently everything(but the character) is drawn by me in Paint.net :stuck_out_tongue:

This post is probably not complete, but if you want to know anything write a comment or email me: lasse.skogland@gmail.com

This is open source, and you’re free to borrow any source code.

NICE! :slight_smile:

I looked through the source a bit (I also played it of course :slight_smile: ), some things I’d like to mention:
[ol]

  • Usually, (in java), it’s convention to write variable names and method names lower case (except the constructor name, because Classes are upper case. You did that pretty good).
  • One more convention: package names are usually always lower-case…
  • I have seen you wrote an implementation, where the input wasn’t poll based, but implemented as ActionListener, and the rendering loop was another thread than the ticking… usually you wouldn’t do this… (yeah even more “conventions”, but this convention is really helpful if you have implemented it right)
    [/ol]

I hope this helps you, but other than that, GREAT WORK! Keep on doing this!

Thanks for the feedback.

I don’t really like those conventions.
I chose to do it this way, because it’s easier for me to understand the next time I open up the project (because sometimes this just sits there for maybe a week or two).
It wasn’t before recently I actually “restarted” this project, I began this project back in 2011, where I made a very basic game.

Since that I redid most of the engine.
What I do nowadays with this project is mostly bug-fixes and performance tuning, and adding new must have features(like sound and a particle engine).

It won’t be long before I add the skill system properly into the game.
I just need some time alone with paint.net :P, need that GUI before i can do anything.
I basically want all the GUI to be drawn by human, not by java, so that is why the progress is very little, Game-Wise.
Everything(but the character) is drawn be me, I’m not great when it comes to graphics, so it takes time to make it perfect.

So if anyone are good at pixel art(or even a beginner), you are free to join the project, just send me an email: lasse.skogland@gmail.com

ArrayIndexOutOfBoundsException occurs when you pick anything but MapSize[1024] :expressionless:


Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4096
        at com.GameArc.RRPG.Engine.MenuPanel$1.actionPerformed(MenuPanel.java:106)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Nice, but I think that you should let the player move without having the press the arrow keys up and down for each tile.

That’s what:


Cheats (ctrl + c)
 - "sprint" makes you walk faster

enables. :persecutioncomplex:

The coordination system is aweful, but I’ll “remake” it when I have time.
The current system is for debugging.

The walking will be smooth in the future, not block by block…
I just haven’t had that much time, I go to work(8AM-4PM), and I have always something to do :frowning:
So i’ll try to add it next week :slight_smile:

FIXED… Hopefully…
It was a misplaced line :stuck_out_tongue:

Dusting of this project and will start developing further on this game.

Changelog:

  • Fixed some bugs
  • Added some small features
  • Walking is constant, meaning you won’t have to press buttons like a maniac
  • Ctrl + Z - saves the map as “map.png” in the game’s working directory

I realize this is WIP, but instead of saving the map as an image you should save it in a map format (.tmx or whatever you prefer). Even if you want to stick to an image you can use the Tiled (http://www.mapeditor.org/) map editor and export as an image, it’ll make map-making a lot easier.

Nice job on the minimap :slight_smile:

The map getting saved is only to get a view of the whole map, it serves no use to the game.

The maps are randomly generated like minecraft, but the map does not get saved.
It regenerates every time it loads, doing this saves space on the harddrive.
And since I use simplex noise to generate it takes less than 2 seconds to generate a map on an average pc. (Depends on the mapsize)

Unrelated to this post, but thank you for this! I was going to spend all night and tomorrow on a map editor. Now I’m not.

UPDATE:
Added smooth textures, which are a little buggy.

Upcoming features:
Skill & Attributes system
Inventory & Equipment
Combat system

Possibly future features:
Convert rendering system to OpenGL(LWJGL or similar)

Bug Fix:
Fixed problem where smoothing would pick the wrong tile.
Bug occured when two blocks(shore lines) were “touching”.

UPDATE. FINALLY :smiley:
After all these months i finally redid the rendering system.
The game now uses LWJGL to render and handle input.
Not much else has happened.

Planning on trying to release more updates very soon.

UPDATE. FINALLY :smiley:
After all these months i finally redid the rendering system.
The game now uses LWJGL to render and handle input.
Not much else has happened.

Planning on trying to release more updates very soon.

Hey I kind of recognise the character where did you get it?

Hey I kind of recognise the character where did you get it?

I don’t quite remember, i got it somewhere off the internet :stuck_out_tongue:
This is not the final character model, this is temporary.

I don’t quite remember, i got it somewhere off the internet :stuck_out_tongue:
This is not the final character model, this is temporary.