LoginLogin

The Really Great RPG PC thread!

Root / General / [.]

IAmRalseiCreated:
Really Great RPG is being ported to PC and lacks suggested a thread about RGRPG for PC so yeah i made one Edit:Read the next post in this thread for more details from Mr. 360 himself!

What I'm making will include a port of RGRPG, but it is not RGRPG PC. also look at this super cursed code I'm trying to write and get to work:
while true do
 love.graphics.print("this is not the way to program in love2d.", 0, 0)
 sbVSYNC()
end

Actually wait a second
The Explanation. This is cool and all, but what's going on here?cool stuff
Please stop with the unnecessary spoilers and cryptic trash. I want to know actual information, not vague hype for something that will most likely die before it reaches my screen.Alright, fine. I have completely abandoned the idea of the code snippet from the previous post. That's a disgusting way to do things, especially when you're going to add the setup-update-draw loop back anyway. I'm going to integrate SmileBASIC-style features into Love2D in a neat way. Here's a ***WORKING*** code sample.
function setup()
	fishes = {}
	
	for i = 1, 64 do
		fishes[i] = Sprites.new(math.random() > .5 and 244 or 245)
		if math.random() > .5 then fishes[i]:toggleAttribute(Sprites.Attributes.FlipH) end
		if math.random() > .5 then fishes[i]:toggleAttribute(Sprites.Attributes.FlipV) end
		if math.random() > .5 then fishes[i]:toggleAttribute(Sprites.Attributes.Rot90) end
		if math.random() > .5 then fishes[i]:toggleAttribute(Sprites.Attributes.Rot180) end
		fishes[i]:toggleAttribute(Sprites.Attributes.Additive)
		fishes[i]:home(8, 8)
		fishes[i].variables[2] = (window.screen.width / 8) + (i * 2)
		fishes[i].variables[3] = (window.screen.height / 8) + (i * 2)
		fishes[i].variables[4] = i * 2
		fishes[i]:addCallback(becomeFunky)
	end
end

function update()
	for i = 1, #fishes do
		fishes[i]:update()
	end
end

function draw()
	love.graphics.clear(0, 0, 0)
	
	Sprites.startBatch()
	for i = 1, #fishes do
		fishes[i]:draw()
	end
	Sprites.endBatch()
end

function becomeFunky(sprite)
	sprite:offset(
		sine(window.frames + sprite.variables[1], 120 + sprite.variables[4], sprite.variables[2], true) + (window.screen.width / 2),
		cosine(window.frames + sprite.variables[1], 90 + sprite.variables[4], sprite.variables[3], true) + (window.screen.height / 2)
	)
	sprite:rotation(
		sprite:rotation() + 2
	)
	sprite:color(
		sine(window.frames + sprite.variables[1], 120 + sprite.variables[4], .5, true) + 1,
		sine(window.frames + sprite.variables[1], 180 + sprite.variables[4], .5, true) + 1,
		sine(window.frames + sprite.variables[1], 240 + sprite.variables[4], .5, true) + 1
	)
	sprite:scale(
		sine(window.frames + sprite.variables[1], 90 + sprite.variables[4], 2, true) + 3,
		sine(window.frames + sprite.variables[1], 90 + sprite.variables[4], 2, true) + 3
	)
end
While it is working, you can't run it right now, as you don't have the API. Pranked!!! Anyway, the screenshot. It shows off map importing, (from my dumb map format) the code I just wrote above, and z-sorting in my SmileBASIC API. All running at 60 FPS, with a minimal amount of draw calls. I'm thinking of calling my API Smiley, (Smiley2D? Smiley 2018 Pro Edition?) to carry on the legacy of TUTORIAL.PRG. Also, I'm working off of another API I made for Love2D that adds a lot of boilerplate, such as program flow, window.screen, pixel perfection, and sine functions. This is not part of RGRPG2, it's just a graphics demo. Think of it as the Super Mario 128 to RGRPG's Super Mario 64. Also, Minit's OST is extremely good, please listen to it.
Edit: additional z-sorting image! Look at this! It's really easy to implement! Extremely elegant, too!
Sprites.startBatch()
for i = 1, #fishes do
	--' Dumb hack
	if fishes[i].type ~= "sprite" then Sprites.endBatch() Sprites.startBatch() end
	fishes[i]:draw()
end
Sprites.endBatch()

I forgot all about this thread!

Progress Update! Text has been added to this API!
function setup()
	t = Text.new(50, 30)
end

function update()
	t:locate(math.floor(math.random() * t.width), math.floor(math.random() * t.height))
	t:color(math.floor(math.random() * 16), math.floor(math.random() * 16))
	t:print("Heck!", false)
end

function draw()
	love.graphics.clear(0, 0, 0)
	
	t:draw()
end
The text cursor exists too, so this works!
t:print("I am on the first line!")
t:print("I am on the second line!")
Text coloring is also hardware-accurate, and if you clear the screen it fills the screen with background color. Then if you scroll the screen, you also see that it doesn't fill the screen with the background color! I also stole data from otyaSmileBASIC to make the text characters accurate to the SmileBASIC font GRP! Instead of using lazy "just calculate it on the fly" technology, I have decided to use the "GENERATE 4,000 QUADS AT STARTUP" technique! wait Never mind i found an edge case and I can safely say I hate COLOR 0, [any non-zero color here].

Progress Update! Text has been added to this API!
function setup()
	t = Text.new(50, 30)
end

function update()
	t:locate(math.floor(math.random() * t.width), math.floor(math.random() * t.height))
	t:color(math.floor(math.random() * 16), math.floor(math.random() * 16))
	t:print("Heck!", false)
end

function draw()
	love.graphics.clear(0, 0, 0)
	
	t:draw()
end
The text cursor exists too, so this works!
t:print("I am on the first line!")
t:print("I am on the second line!")
Text coloring is also hardware-accurate, and if you clear the screen it fills the screen with background color. Then if you scroll the screen, you also see that it doesn't fill the screen with the background color! I also stole data from otyaSmileBASIC to make the text characters accurate to the SmileBASIC font GRP! Instead of using lazy "just calculate it on the fly" technology, I have decided to use the "GENERATE 4,000 QUADS AT STARTUP" technique! wait Never mind i found an edge case and I can safely say I hate COLOR 0, [any non-zero color here].
oh cool

Lua isn't evil, you know...
math.random(0,15)
(well actually, it doesn't have a math.abs() function so I guess it is evil)

wait Never mind i found an edge case and I can safely say I hate COLOR 0, [any non-zero color here].
Fixed... but at a cost. I now have an inverted copy of the font along with the font. I might try to use a shader to invert the font while drawing, so I don't have to use this copy. Nice! Edit: Heck yeah, I used a shader and it works! now time to sleep

Today I spent five hours on fixing sprite attributes. Anyway, everything's going pretty well other than that. Tomorrow I'll get a GitHub repository up for both my Template and SmileBASIC library. Anyway here's all my current progress: https://youtu.be/TEZd4dWmKWM https://youtu.be/H7CwEYJltgQ

Here's the repository, if anyone wants to see my horrible code. Not much progress, but I'm having a lot of fun with shaders. (Extremely basic shaders, but still funky)

I think your readCharacterListing function can be written as:
function readCharacterListing(filename)
	Text.Characters = {}
	
	local file = love.filesystem.read(filename)
	for character, x, y in file:gmatch("(%d+),(%d+),(%d+)") do
		Text.Characters[tonumber(character)] = love.graphics.newQuad(tonumber(x), tonumber(y), Text.Size, Text.Size, Text.Sheet:getDimensions())
	end
end
EDIT: also why is gray called "DarkGray"? There aren't even any other grays

I'm going to change the color names to the ones listed in the Instruction List, as that is always the most reliable source of information free from errors. Currently developing SPDEFs and readDefinitionListing, which does a similar thing, but is different enough that it needs its own function. SPDEFs will probably be the last thing stopping me from making the animations module thing. (aside from energy and school and real life) school isn't real

Just added animations! Not accurate at all right now, and the code is horrible, but I'm proud of it!

Seems like the library is getting pretty usable. I wonder if anyone's going to make anything with it soon?
Self-aware JokeNew project hyping checklist ☑ Ominous solid color profile picture ☑ Posts about the vague idea of working on a project ☐ Actually making something

This is a cool project and I hate to be a Debbie downer, but I should mention a few things.
  • Oracle vs. Google. https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc. Oracle sued Google over their use of the Java API in Android. It went back and forth for a while, but it looks like Google lost (personally I don't think APIs should be copyrightable). Re implementing SmileBasic's graphics API in Lua could be troublesome. Truthfully it probably would never go past a Cease and Desist, but still it is something to consider.
  • Use of the SmileBasic fonts, graphics, and presumably down the line music and sound effects. These are owned by SmileBasic under copyright, and they could easily get you in legal trouble too.
Now a slightly off-topic question. It looks like this project is on both TheV360, and 12ME21's github pages. Shouldn't you be working together on just one or the other? Ok, one more slightly off-topic question, does Love2D really have shader support? It looks like I havent' looked into that library in quite some time. I am not a Lawyer, and I don't even play one on TV, but still, I would recommend changing the API around a bit and sourcing your own graphics (https://opengameart.org/). Maybe a slight rename too. Good luck, it looks like a cool project.

Good luck, it looks like a cool project.
Yeah, maybe uploading a few Spriter's Resource pngs wasn't a good idea. Anyway, 12Me21 helped with two things (fonts and spdef) but most of it is my awful code. The project sort of ran out of steam over the past 3 days, mainly because I fear all the awful hacks and uncommented code. Still might be useful to newbies. Heck, I'm wondering if I should port this to MonoGame or Haxe or something. I'm trying to find something that isn't SmileBASIC and something I can comfortably program in. Also, yeah Love2D has shaders now. They're actually pretty useful.

Leaked RGRPG Script:
The ScriptHahaha u gotta get my gem i lost back. i lost back. i lost back. i lost back. i lost back. i lost back. i went traveling to buy the caves of illusoins becus they have walls press x to a bunch of illusoins becus they have walls press x to splash. thx jim from miivers hahah its a fish out their r entering the CAVES!!!!!!! they're are you????!!! come back!!!! wait did he delete himself or allright fish heres my maze!!!!!! get my maze!!!!!! get my EPIC RPGs first demo!!!!! wat????? fish heres my maze!!!!!! get my EPIC RPGs first demo!!!!! wat????? fish heres my gem i lost back. i went traveling to a castle and a shop outsidw!!!! playing outside is fun!!!! much better than video games hey how are u failed my NEW & INPROVED game!!!!!!! I ADDDED A BRAND NEW & INPROVED game!!!!!!! I ADDDED A BRAND NEW BATTLE SYSTEM!!!! ive been expecting u.... u gotta get destroyd!!!! u u can talk???? oh cool!!!!! thank you im going to die your hp so try not to a castle and a castle and a dead end look out u can talk???? oh cool!!!!! thank you im mowing the caves and most of your hp so try not to die in battle u r random encountrs now look out your entering the lawn right now. im mowing the new nx thing look out your a shop outsidw!!!! playing outside is fun!!!! much better than video games hey how are more enemys in battle u ready 2 go on it??? well u failed my maze!!!!!! get destroyd!!!! u thought these caves of water lol hah u found a castle and a dead end look out, more enemys in battle u were real look out of caves and a shop outsidw!!!! playing outside is fun!!!! much better than video games hey how are you????!!! come back!!!! wait did he delete himself or allright fish u gotta get destroyd!!!! u ready 2 m bark on a quest. are you????!!! come back!!!! wait did he delete himself or allright fish out of your a quest. are you die in battle u failed my gem i lost back. i went traveling to splash. thx jim from miivers hahah its a cool 3d zone and most of water lol hah u found a bunch of your entering the caves and most of caves and a dead end look out of caves of caves and a fish u failed my NEW & INPROVED game!!!!!!! I ADDDED A BRAND NEW BATTLE SYSTEM!!!! ive been expecting u.... u gotta get destroyd!!!! u r random encountrs now look out u r entering the lawn right now. im going to die in this forest!!!! allright thats it for my maze lololol save up youre splash ability will help u thought these caves the CAVES!!!!!!! they're are u lose half youre coins theres a castle and most of illusoins becus they have walls press x to earn enough money to markov chains are fun
Bonus:
MoreHas a fish heres my gem i heard theres a coin. its a book titled "ULTIMATE BIG BOOK OF CHEATS vol. 3 (Book Fair Edition)". one in green text on quests the Map... you spin the channel before i the back you die in the book titled "SUPER ADVENTURING TIPS & TRICKS". one of energy and most of a title. one page catchs you're eye hey im going to die your entering the library is so why are u can talk???? oh boy, which politician did a fish u could get a quest. are you won in battle u ready 2 turns restored 30 hp :/ you now you think? the enemys there was one page catchs you're eye its a library for this message in a background the morning? the shopkeeper is. hes not to buy the flowers here have enough free will help u failed my home and is the book i now you failed at running! :( the tv shows a fee. i put alot of Puzzles". one page catchs you're eye hey look out u found a soccer match. football sucks, lol its macaroni art sorry i can take 2 fight them! hah u thought these trees were real the guards, theyll give u gotta get paid over 10 year old movie the ancient ruins. its macaroni art sorry i went traveling to pass the signs watches over 1000 coins for my maze!!!!!! get paid 2 go on the next screen has some dumb anime. they saw that looks really good. quick change the new celebrity gossip, hooray the small town of turns!!!!! and is the guards, theyll give u encountered a bunch of illusoins becus they gave me so why are you unfolded the library that means, but thats written on it??? well run out your entering the library for narration. yeah, once they can go on ur quest to buy & INPROVED game!!!!!!! I ADDDED A BRAND NEW BATTLE SYSTEM!!!! ive been expecting u.... u u thought these caves and im mowing the tv shows some hp) allright its energy and most hated place on the map! handdrawn by me, the morning? the book from the book! it was one knows who wants to be REALLLLY smart to do you cant use twice and become normal signs!!!! i still havent returned the library! its my collection of Puzzles". one of illusoins becus they will help u failed my gem i have enough free will do it huh thats written on the back you got the book from the gem i learned so much about how there are shown afterwards the background, there family. they have gotten "how to pay a painting of there are u can buy & sell things at 3 in the tv shows some dumb thing today the hosts are you think? the news. oh cool!!!!! thank you think? the tv shows a cool cartoon about how there was worth it for somedamage! you ran away from miivers hahah its a