Luigifan's Development Thread!

This is the place for video games!

Moderator: Userbase Moderators

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Luigifan's Development Thread!

Postby Axiom » Thu Jun 18, 2015 7:55 am

Spoiler: show
The exciting new program from your favourite fan of Luigis! I call this one: the Java RPG Engine (InDev©).

Anyways, all the hoopla over. I started developing in Java recently following my rebirth in interest for Ubuntu. What started as a port of my C# Text Based RPG Engine turned into a "hey, what can I do with LWJGL in one day?". The progress you see here is the result of two days of vigorous work! Let's go over what's going on so far..
  • Proper LWJGL Library Linking, no matter what operating system
  • Random world generation
  • World saving
  • World loading
  • "Texture pack" Support
  • Lots and lots and lots of code...
Okay, to be fair, this isn't the most exciting thing right now if you are the player but as a developer, it's fun to share my progress. The best part is that even if I decide to scrap it, it's licensed under the MIT licensed and fully open sourced on GitHub. So pickup, fork me, whatever you want!

So, here's some screenshots as a "proof of concept"

So as many of you know, I'm a developer. Originally, this thread was meant to be to post status on my Java RPG Engine. But I realised I love making so much more than games. So, I've decided this thread will be for more than just the Java RPG Engine, but for my development in general. I've decided to convert this thread to document my experiences programming, sort of kinda like a blog. I also want to share code and maybe teach some people along the way. So as of now, the JavaRPGEngine is a side project, I will certainly come back to it. But, I want to learn other things along the way too!


old java rpg stuff
Spoiler: show
Image
I generated this map and saved it to a file, the file is loaded back again into the game
Spoiler: show
Image
Here are the more current textures I've had a friend make for me (save for the water, we have to fix that)
Spoiler: show
Image
And here's the game loading textures from another folder, also showcasing handling for a when texture is non existent (note the "saucer" from the previous screenshots is now a sad face).

So this is very exciting for me as this is my first game that I'm actually going to work on actively developing, I hope to put out something that you guys will enjoy! I will update this thread with development news as time goes on.
Last edited by Axiom on Thu Jun 25, 2015 12:08 pm, edited 1 time in total.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Java RPG Engine (InDev)

Postby Axiom » Thu Jun 18, 2015 10:38 am

Development Update: Level Editor

Image

This is the basis for what will eventually become the level editor. I spent about an hour toying with Swing and LWJGL embedding and now have the exact engine rendering a level inside of Swing (they share the same classes). Controls are basic right now, you click to place a block and use the home and end keys to change your block. Coordinates are displayed at the top of the window.

MX: Mouse X, the absolute X coordinate of the mouse
MY: Mouse Y, the absolute Y coordinate of the mouse
TX: Tile X, the tiled X on the map (IE: 1 tile over)
TY: Tile Y, the tiled Y on the map (IE: 1 tile down)
CurTile: the current tile selected for placement.

XerX
Phanto
Phanto
Posts: 1487
Joined: Fri Dec 20, 2013 3:33 pm

Re: Java RPG Engine (InDev)

Postby XerX » Thu Jun 18, 2015 2:09 pm

For your first big thing, this is progressing nicely.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Java RPG Engine (InDev)

Postby Axiom » Thu Jun 18, 2015 5:21 pm

XerX wrote:For your first big thing, this is progressing nicely.
*blushes* t-thank y-y-you game dev senpai

EDIT: new dev update

The level editor has been moved over to an MDI view reminiscent of a Mario game I think most of us have played

Image

Anyway, it also saves levels now too. Now that the level editor works fine though, i can move onto making the CorePlayer class do some more useful things!

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Java RPG Engine (InDev)

Postby Axiom » Fri Jun 19, 2015 10:09 am

Daily update
Spoiler: show
Image
I created a sort of extension to the default tile, I call it a floor tile. For now, it's just drawn slightly darker than a normal tile. However in the future, NPC's will be allowed to walk on them. Any tile can be considered a floor tile. In the editor, they are placed by right clicking.

Update 2

I made the player class do some more useful things now, instead of just being a sentient god (lol) he now is limited to moving only within tiles that are considered "clear". His movement engine is NOT final, however, I am proud of the collision detecting that I have and he moves nicely along a grid.



Update 3

One final update, I've created a class called EntityGrid. Functionally, it's similar to TileGrid in which it holds a double array of the map's tiles. Except this time, it holds the entities on the map. All of the entities on the map will have their data stored to this file (Except player, in which this file simply holds a "stub" of the Player's position indicated by the ID -1). Now, instead of just being one file for tiles there's now two files: tiles.jte and entities.jte. Tiles holds the contents of the TileGrid and entities holds the ones for EntityGrid. One other file will also come and that is the inventory.jte, which will hold the player's inventory. Inventory handling is already implemented and implemented fairly well (due to the class just being an almost copy paste from my extensively tested C# RPG). Cheers!

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Java RPG Engine (InDev)

Postby Axiom » Sat Jun 20, 2015 5:39 pm

Daily update! Hopefully these will continue being daily...

Right, well, game states are working. For those who don't know , that's basically the equivalent of multiple screens in your game.

In addition, I created a super basic launcher for the game

Image

Eventually, this will be expanded.

And finally, the game's title bar shows the FPS now, collision detection is fully functioning and I believe that's about all..

Image

Also, another creative use for background tiles: shadows!

Image

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Java RPG Engine (InDev)

Postby Axiom » Sun Jun 21, 2015 2:57 pm

Daily "Development" Update

It's Sunday so I took a bit of a break, and instead I've taken the time to re-organise a little and decide where I'm going. I built a roadmap sort of thing (more of a todo list) on GitHub.

The latest development is that I've decided to split the launcher from the game. The game and editor will still be bundled as one application, but splitting the launcher from the game has its advantages, the main one being: updates.

My plan is to have my Linux server at home run nightly compilations of this engine, push them out to my server, and the launcher will accept them and update them accordingly. This will probably be my primary focus for the week is getting a solid build script down. After that, build the launcher.

The other (not confirmed yet, but a hope) advantage of this is that this will fix the bug I've been having on Linux where LWJGL components will not run unless they're run by Terminal. This could also potentially affect OS X, but I don't have a Mac to test.

Minor Update
Text drawing FINALLY added. God, I couldn't find a clear way to do it but I finally got it.

Image

Now I can start moving that info such as FPS and current tile to an on screen debugger
Last edited by Axiom on Sun Jun 21, 2015 9:35 pm, edited 1 time in total.

XerX
Phanto
Phanto
Posts: 1487
Joined: Fri Dec 20, 2013 3:33 pm

Re: Java RPG Engine (InDev)

Postby XerX » Sun Jun 21, 2015 7:51 pm

That's a pretty good idea. For the future though I'd suggest a VPS so that it would be online 24/7. Makes it easier on your conputer and easier on the user. Wouldn't worry about it too much right now though.

Loving the progress by the way.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Java RPG Engine (InDev)

Postby Axiom » Mon Jun 22, 2015 9:53 am

This may be the last game related update for a little while, as I will be spending most of my time now learning Maven to setup builds and I will be working on the launcher now.

Anyways, I've implemented the credits screen and a new font with two new font sizes.
Spoiler: show
Image

Here's the "main menu"

Image

The credits screen, accessed with C

Image

And finally, in game with the new font

Something to note here is that I'm working with (almost) bare bones OpenGL calls. I say almost because LWJGL provides a sort of thin layer, barebones OpenGL calls would be me writing this in C! Taking a look at my main drawing class, you can see all kinds of raw OpenGL calls, with the exception of the font drawing class which was thankfully handled beautifully using Slick2D.

XNA made some of this a lot easier, for example text drawing. Texture drawing was also fairly simple also, but working with these (again, almost) barebones OpenGL calls feels oddly satisfying.

Update 2!

I had originally had something here about how exciting it was that I split the Input from all states into one class and blah blah blah and it allowed for controller support blah blah blah..but then my friend came over and he accidentally closed my Chrome. No biggie, I'm here with something slightly more exciting. Buttons!

Image

They're drawn dynamically based on the size you give, and when your mouse is over them, the text turns yellow. Click events are still unfortunately handled on a per state basis, but this is due to the fact that each state handles the drawing of its own buttons. As you can see though, text centering is still a little wonky...

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Java RPG Engine (InDev)

Postby Axiom » Thu Jun 25, 2015 9:01 am

So to update you guys, I took a short break from Java only to develop in a language too similar to Java..C#. The result was a nice looking application that actually works! (I say that because half of the time this game doesn't work)

http://mrmiketheripper.x10.mx/screenshotter/

Check it out, it's pretty simple and I'm quite proud of it.

Maybe I should just turn this into a development thread then lol.

Anyways, I've decided that I want to rework the engine using libgdx. I don't care about low level stuff and quite frankly, I don't need it. What I need is a a way to make everything "just work". If I cared about low level, I'd be making a 3D FPS style game or I'd be using C++ (quite frankly, the OpenGL calls I made are just about the same in C++ so..).
Anyways, no progress yet. LibGDX's installer annoys me so I'm going to try and just either work with the new Gradle build system or extract my needed Jars.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Luigifan's Development Thread!

Postby Axiom » Sun Jun 28, 2015 10:26 am

Progress has been admittedly slow. However, this is why

Image

and this..
Image

but in all seriousness, development is going to slow down. Gradle is really slow. I spend alot of time waiting and it sucks because I can't use LibGDX without it. (well, I can but i can't get any box2d stuff going which i guess isn't that important but you know).

Anyway, i'm working on revamping the engine in it. Hopefully by the end of Monday I'll at least have a basic playtest up and I will move the LWJGL only version into its own branch (in fact, I'll move the branches now).

Right well, tile map rendering IS working right now. Loading and saving from files is NOT. However, when it is implemented I will be changing the extension to .jte2. Why is this? Well, LibGDX uses a different, more traditional coordinates system.

Take note of the cursor position and the console log, specifically at the Y position:
Spoiler: show
Image
As you can see, 0, 0 is not the top corner as it is on the old LWJGL-legacy engine
Spoiler: show
Image
0, 0 is now in the bottom left
Spoiler: show
Image
.JTE maps won't be forwards compatible with the new .JTE2 maps for a while. Maybe one day I'll figure out how to write a converter, but until then, I'll stick with this. Switching the coordinates system back would be more complication than it's worth.

A few VERY good things have come out of using LibGDX instead of going for raw OpenGL calls.
Spoiler: show
Image
I managed to get floor tiles rendering in about 5 minutes of just playing with Color tints instead of 20-30 mins of struggling with raw OpenGL calls.

Scaling is also done automagically though it is kinda WIP

[rimg]http://gyazo.com/5c149f9f3cbfacd1dbf4bc669f9eb942.png[/rimg]
Last edited by Axiom on Sun Jun 28, 2015 12:13 pm, edited 1 time in total.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Luigifan's Development Thread!

Postby Axiom » Sun Jun 28, 2015 11:39 am

Image

like i never even moved the engine over



camera's work...kinda. i'm still trying to get the world mapped correctly and stuff

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Luigifan's Development Thread!

Postby Axiom » Sun Jun 28, 2015 5:28 pm

I felt like this deserved its own post...cameras are working fully now! You know what that means right? Big maps!


Expected
Swooper
Swooper
Posts: 64
Joined: Sat Jun 27, 2015 9:23 am

Re: Luigifan's Development Thread!

Postby Expected » Sun Jun 28, 2015 5:51 pm

Damn, that RPG stuff is looking like it's coming along very nicely! I've always done all my game-related coding in Unity (+javascript), so I enjoy seeing games made in Java (to remind me of how pathetic I am for using a prebuilt engine :P ). The thought of coding colliders by hand really scares me. Will you ever release the source code? As a fellow dev, it'd be really neat being able to understand how you did what you did.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Luigifan's Development Thread!

Postby Axiom » Sun Jun 28, 2015 6:22 pm

Vyvuto wrote:Damn, that RPG stuff is looking like it's coming along very nicely! I've always done all my game-related coding in Unity (+javascript), so I enjoy seeing games made in Java (to remind me of how pathetic I am for using a prebuilt engine :P ). The thought of coding colliders by hand really scares me. Will you ever release the source code? As a fellow dev, it'd be really neat being able to understand how you did what you did.

https://github.com/Luigifan/JavaRPGEngine :P

and thank you so much!

Expected
Swooper
Swooper
Posts: 64
Joined: Sat Jun 27, 2015 9:23 am

Re: Luigifan's Development Thread!

Postby Expected » Sun Jun 28, 2015 10:03 pm

Luigifan2010 wrote:
Vyvuto wrote:Damn, that RPG stuff is looking like it's coming along very nicely! I've always done all my game-related coding in Unity (+javascript), so I enjoy seeing games made in Java (to remind me of how pathetic I am for using a prebuilt engine :P ). The thought of coding colliders by hand really scares me. Will you ever release the source code? As a fellow dev, it'd be really neat being able to understand how you did what you did.

https://github.com/Luigifan/JavaRPGEngine :P

and thank you so much!
Thanks for the source code! It'll help me a lot (especially the camera parts) if I ever end up making a game or game engine in Java. It's a lot to sift through, though, but hopefully I'll be able to figure it out. I've mainly done work where I've only had to read my own code, so reading another person's code might help improve my programming ability a little. It probably won't, though. :P

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Luigifan's Development Thread!

Postby Axiom » Mon Jun 29, 2015 7:53 am

I know it helps me, and my code isn't the most well documented but it always helps to see different code styles and such. Just be warned that if you want to fork/clone or whatever, you need to get the Eclipse gradle plugin.https://github.com/spring-projects/ecli ... /README.md this describes how to get it. I have to update the README in my repo to reflect the new instructions.

Cheers!

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: Luigifan's Development Thread!

Postby Axiom » Mon Jun 29, 2015 4:51 pm

Not much exciting happened in the vein of the engine, but I did fire up an OS X virtual machine and fix all of the engine bugs. Oh, and I also made this

Image

No big deal...

Ecruteak
Rocky Wrench
Rocky Wrench
Posts: 675
Joined: Wed Mar 18, 2015 1:53 am
Flair: It's been...
Pronouns: she/they

Re: Luigifan's Development Thread!

Postby Ecruteak » Mon Jun 29, 2015 5:28 pm

Whoa, man, this is looking good! Just a few questions-
1- Will it be able to run in Windows XP? I have a Virtual Machine and I'd like to try this out on it. If not, then...
2- Will there be a Mac OS X version?

So far, good job!

Expected
Swooper
Swooper
Posts: 64
Joined: Sat Jun 27, 2015 9:23 am

Re: Luigifan's Development Thread!

Postby Expected » Mon Jun 29, 2015 5:50 pm

Luigifan2010 wrote:Not much exciting happened in the vein of the engine, but I did fire up an OS X virtual machine and fix all of the engine bugs. Oh, and I also made this

Image

No big deal...
That's pretty damn neat, Luigifan. Reminds me of Minecraft's launcher. Quick question: will you implement a way to do battles with customizable enemies, or is this purely an overworld engine?


Return to “Video Games”

Who is online

Users browsing this forum: Semrush [Bot] and 1 guest

SMWCentralTalkhausMario Fan Games GalaxyKafukaMarioWikiSMBXEquipoEstelari