2D RPG Engine

Anything related in any way to game development as a whole is welcome here. Tell us about your game, grace us with your project, show us your new YouTube video, etc.

Moderator: PC Supremacists

User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

And we bring yet another kinda monthly-ish video showing some updates, this is more of a demo i created over the holidays, by far my heart goes to the camera manipulation it took 10 minutes to make some lua functions and write the cutscenes for this demo but i spent at least an hour tweaking the cameras position and how fast it moved, theres just something i enjoy about creating some-what-ish cutscenes anyways some other additions is the defines header which has a bunch of defines which are like switches for certain systems, e.g for the release build im most likely going to turn off special debugging keys and the lua prompt as well as debug output to the adventure log, but am going to leave on Saving and loading. Another thing is the party system has recevied an upgrade and i added some more 'object oriented lua' so you can create your self randomly generated forests and such using items, behind the scenes is also loading textbox conversations from files and having multiple screens of text, but i digress, here is the video( NOW IN 1080p :D):

<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Simple 2D RPG Engine

Post by dandymcgee »

Awesome work.

But dude, tab your Lua. :roll:
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
superLED
Chaos Rift Junior
Chaos Rift Junior
Posts: 303
Joined: Sun Nov 21, 2010 10:56 am
Current Project: Engine
Favorite Gaming Platforms: N64
Programming Language of Choice: C++, PHP
Location: Norway

Re: Simple 2D RPG Engine

Post by superLED »

Nice update! Looks like you've done a lot since last time 8D
Btw, I posted the cave set on your forum ^^
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

dandymcgee wrote:Awesome work.

But dude, tab your Lua. :roll:
XD, yeah i probably should the last lua IDE/editor i used did it for me and i get a bit careless with formatting in my lua scripts.
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

Haven't shed much light about the editor here, most of the focus has been toward the engine(mostly because it has the most attention payed to it), but today ill shed some light on the slow moving editor, just like the engine its in C++/SDL, you can select through a variety of tiles and place them by clicking or holding down the mouse button, by holding the right mouse button you can fill a rectangular area of your choice, by pressing f and selecting a tile you want you can completely fill the entire map with that tile,object placement is currently in the works right now as well as a multilayer system. Not the greatest editor but it suits the purpose and gets the job done ;) some things you may or may not look forward to in the next video are going to be more of the editor in action and testing it out, as well as some new original art from a newly acquired artist who has gladly volenteered to do some spriting :).
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Simple 2D RPG Engine

Post by dandymcgee »

Light-Dark wrote:some things you may or may not look forward to in the next video are going to be more of the editor in action and testing it out, as well as some new original art from a newly acquired artist who has gladly volenteered to do some spriting :).
Yup, looking forward to it. ;)
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

adding on to that looking forward list, is Tabbed lua, some more object oriented lua where enemy ai is now pretty much created,defined and destroyed in lua, you can also add items. Also did a rewrite of the object system to support a variable ammount of objects same with enemy ai, here is some lua examples of say creating a boss AI

Code: Select all

local Boss = EnemyNPC:new(x,y,type)
Boss:SetHealth(500)
Boss:SetLevel(50)
Boss:SetAttack(75)
Boss:SetDefense(25)
Boss:SetMaxDamage((75*50)/25)
--Somewhere in the Event checking looped script...
if Boss:GetHealth() < 0 then
Boss:Destroy()
end
Id say the last 24 hours have been the most productive in a looooooong time for me, expect more when it comes video time!
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »



Yeah i know there are several flaws in todays video, the recording curse hit me reeeeeal bad, it took me 7 takes to get a decent one and by then i was really pissed off. The audio with hypercam was VERY desynchronized and im now looking for better capture software, yeah so sorry, but hey at least i got in that stage clear sound effect :P, anyways yes i did make it 360 controller compatable so if your wanting to play the game with a controller on your PC just download the driver quickly from microsoft and plug in your 360 controller or some how wirelessly connect it, nonetheless enjoy!
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
eatcomics
ES Beta Backer
ES Beta Backer
Posts: 2528
Joined: Sat Mar 08, 2008 7:52 pm
Location: Illinois

Re: Simple 2D RPG Engine

Post by eatcomics »

I need to start following this O.o. Good work man :D
Image
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

Code: Select all

--Circular Movement Pattern
function Newb2:CircleMovement()
	if Newb2.Counter == 0 then
	Newb2:SetDirection("Up")
	elseif Newb2.Counter == 10 then
	Newb2:SetDirection("Left")
	elseif Newb2.Counter == 20 then
	Newb2:SetDirection("Down")
	elseif Newb2.Counter == 30 then
	Newb2:SetDirection("Right")
	elseif Newb2.Counter == 40 then
	Newb2.Counter = -0.5
	Newb2:SetDirection("Stop")
	end
	Newb2.Counter = Newb2.Counter + 0.5
end
Just finished a pretty decent NPC movement system, each a instance in lua has a counter value in it you can use it to create/time your own movement patterns, also just realized with the way i have lua setup i can have a simple little inheritance system e.g:

Code: Select all

local Newby = EnemyNPC:new(x,y,Sprite)
Newby:SetPosition(x,y)

function Newby:HaltInPlace()
Newby:SetDirection("Stop")
end

local Derivitive = Newby:new(x,y,Sprite)
Derivitive:HaltInPlace()
could come in handy later when i start working on some game content later on :P
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
lalacomun
VS Setup Wizard
VS Setup Wizard
Posts: 114
Joined: Wed Dec 28, 2011 10:18 pm
Favorite Gaming Platforms: psx, nintendo ds, gameboy advance, xbox 360, ps2
Programming Language of Choice: C++
Location: Argentina
Contact:

Re: Simple 2D RPG Engine

Post by lalacomun »

keep the good work!!, these vids inspire me to keep on with my own engine-editor project! :)
Image
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

lalacomun wrote:keep the good work!!, these vids inspire me to keep on with my own engine-editor project! :)

Thanks! great to know i bring some inspiration to the community, also id like to make everyone aware of a side project ive been working on, im making my own super mario brothers engine, its got a basic tile system and scenery system, its got working audio and debugging systems. Most of the 'physics' are controlled in the player.cpp file so when i open source this which will be pretty soon (as soon as i put a items system) ;)
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

Finished up the Multi-screen textbox system, you can load conversations from Text files e.g

Code: Select all

NAME
Screen1
Screen2
Screen3
etc..
also it now supports the ability to declare a newline:

Code: Select all

myTextbox.SetConvo("Hi|This is on line2|this is on line3!");
Also wrapped the textbox back to lua properly, aswell as the FriendlyNPC system so you can create dynmaic friendlyNPC's where you can pop on screens of dialog at will or remove all or load from another txt file e.g:

Code: Select all

Fatty = FriendlyNPC:new(x,y,Sprite)
Fatty:LoadConvoFromFile("Data/NPCs/Fatty.npc")
Fatty:ConvoClear()
Fatty:AddConvoScrn("Trololololol|...|kbai!")
Next comes a hopefully sucessfull attempt to make a branching system where you can branch conversation based upon answers and questions(im probably going to have to make this anyways).
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

Lightdark Texteditor png
Lightdark Texteditor png
LightDarkTextEditor.png (100.54 KiB) Viewed 6079 times
Bam! that was the fruit of the week-ends labours!, i decided to dabble into QT looking into viablity for writting a new level editor in it, for my first test program i decided to make a simple nice texteditor that i would actually see my self using, so i loaded it with features that i use and would want, look at the file open in the image for the details.

Also, finally got to work on redoing menu's and multiple tile-layer implementation.
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
User avatar
Light-Dark
Dreamcast Developer
Dreamcast Developer
Posts: 307
Joined: Sun Mar 13, 2011 7:57 pm
Current Project: 2D RPG & NES Platformer
Favorite Gaming Platforms: NES,SNES,N64,Genesis,Dreamcast,PC,Xbox360
Programming Language of Choice: C/++
Location: Canada

Re: Simple 2D RPG Engine

Post by Light-Dark »

Well today marks the one year mark and to celebrate i am rewriting the entire engine! i have learned from many of my past mistakes and now the time has come to amend them and make something better and more organized!
<tpw_rules> LightDark: java is a consequence of inverse moore's law: every 18 months, the average program will be twice as slow. therefore, computers always run at the same percevied speed. java's invention was a monumental step
Image
Post Reply