Just found your channel and your videos are amazing! I'm actually shocked the algorithm hasn't picked up your videos yet. Super engaging, pacing of jokes was great and made it so fun to watch, you didn't waste my time with useless talking. Maybe it's because you didn't hit the 10 minute mark on the video haha. PLEASE keep making videos, you're already in my top 10 RUclips channels.
This reminds me of when I was so bored in statistics, b/c I already knew everything, that I spent my time in class building an RPG using just my ti-84. When I tell you it took me over a MONTH to code the name entry system! It's almost like it wasn't made to make games or smthn. I made a surprising amount of progress, but sadly it got wiped from my calculator when I forgot to protect it before my SAT. I cried when I got home that day and it wasn't because of the test lol. Maybe I should start it up again for fun.
If you want some unsolicited code review, instead of having 300 lines of code to draw a character, store the color of each pixel in a 2d array. Then you can iterate through the array, add the characters location offset to the array location, the draw that color value to that location. You'd have an array declaration at the top of the file and then a double for loop. Then you can edit the sprite by just changing the array. For bonus points, use a hash map so that you can store the colors in the array as a single character, then the array will look like the sprite, sort of.
Hey with the drawing normally any graphics engine has the partial drawn canvas problem, the solution in most case is to have two canvases, and swap between them as one finishing drawing. Maybe you could emulate this behaviour by having a different tab in excel and swap between them as the next frame finishes drawing?
@@SethEric It is simpler. Draw new frame in Temp canvas. Then copy it on to View canvas (so you never clear View). With this you only somitemes see a line between old frame and new frame
@@SethEric Next step: don't clear the entire screen, look at the difference between old and new positions, calculate the pixels that are no longer occluded by a character and redraw the background only for them. (I know very complicated, but no flicker)
Really cool! Maybe a silly remark, since it seems kinda obvious - but why the white flickering? It seems a bit like you first reset the cell back to the background color (white), and then you repaint the entire wizard or something. Technically doing two draws per cell per wizard repaint. Especially when you pause the video, you can see the wizard is interlaced with white vertical lines, which shouldn't be necessary, and probably cause the laggy looking effect I'd think you can solve this by not resetting to white first, but doing a diff and only repaint the cells with the colors that need to change A lot of the cells neighboring cells are already the correct color, and only the edges seem to need redrawing - if that makes any sense
I thought about this as well, I had messed around with it a bit but it started to get too in depth for a short video. I’m sure there’s a great solution, I just didn’t take the time to figure it out.
the vba code for anti flickering is application.screen update false then write your code and then update screen to true. at least it worked for me.Schau dir "Excel Game// a land goo's crazzy" auf RUclips an ruclips.net/video/4mVvstwaAgc/видео.html
Adding to that note about checking the difference- If you add a sheet where you can draw in your character or even a tile set for the character, you could paint it in like the enemy and reference the space around your character sheet root pixel instead of having so many lines of code. You could even just check a bounding box and ignore any pixels with a certain color value so it doesnt appear as a box in game. I'm not sure how referencing the sheet data would work from VSCode but I would guess you're doing plenty of that in other areas.
This is absolutely amazing. I could only imagining making and ideal clicker game in excel. To make this they should be paying you for marketing the shear breath this program can go. Absolutely amazing
First of all, underrated channel and content and dude the game is sick!!!! Btw you could have made the whole game in the popups maybe? It might have been maybe easier idk never tried js. Great content dude you deserve a sub!!
I tried hard to make a pathfinding feature to make a single chase another single cell running. But you have made a literally fine demo game. What in the world....?
I think what you could have done with the characters is make the characters on a hidden spreadsheet inside excel by hand (instead of writing code for every pixel), then access that spreadsheet and copy the cells over to your main sheet. I'm not sure which excel API you're using, but most should support this. Since it's 1 call, it should probably also be faster maybe? You said you tried a lot of things, so I'm not sure if you already thought of this way and it didn't work out maybe, but I wanted to bring it up nonetheless.
I love this video. It's a perfect example of someone creating something for the pure joy of it. ❤ This is why I don't worry about people feeling meaningless once AI can do our jobs. There's so much creativity within each of us. When we don't have to worry about doing the work required to meet the needs of our bodies, we have all the time to do the work that satisfies the needs of our souls. We'll work on what makes us happy. 😊❤ Yes, we still need to figure out how to make a living. I'm not that naive as to think that will be an easy problem to solve. Still, I believe that's an easier problem than figuring out how to make people feel meaningful.
should've coded a pixel art editor for the pixels. in excel. and coded that in a custom coding language made in excel. which you made using a calculator. that you built yourself. but seriously: this is too underrated! keep it up!
Hey, ya know google sheets has a Node.Js api. I've used there C# api to create global leaderboards for school projects before. Meaning that you could technically, have multiple clients upload or download values to a google sheet. Which means you could probably figure out some simple multiplayer mechanics with that. Would love to see that being used in a project. Great job btw!
This reminds me of a time I tried to make a text based aventeure using folders and paint JPGs in middle school. I couldn't get very far because of winXP character limits in the directory bar though :/
you can ask Excel to stop the screen update while the code is manipulating the character for the next position using Application.ScreenUpdating = False and turning on again when finished, to stop the drafting effect
Somewhat tell me this could be the future.. But I'm imagining he was using VBS inside Excel to run all the logic and number. In fact, if game engine design to be somewhat like this, should be fun to assign logic to each cell, while having sprite support natively.
Interesting approach. I will have to look into how you actually were doing this as I did not know it was possible to use JavaScript in Excel. A friend sent me your video as I made a quasi-roguelike in Excel but I did it all via userforms and VBA. (Unfortunately, no way to really get animation other than "jumping" from one location to the next unless you have a really powerful computer.) However, creating tables in the Excel sheets and using lookups, I was able to get all the data to create levels at runtime in the userform. I also coded it in with multiple difficulties so you could see the whole map, only just a small area around you, or where it mimicked fog of war and stayed visible after you walked past a section.
an approach to avoiding issues with flickering would be to calculate the diff from one frame to the next rather than clearing the previous frame. so you'd iterate over all the pixels in your old frame and new frame. if its a pixel in the old frame but not the new frame, clear it. if it's a pixel in the new frame but not the old frame OR both frames but the color changed, draw the new color . if it's a pixel in both frames but the color didn't change, do nothing. that way you dont get any intermediate colors and also avoid unnecessary draw calls
instead of clearing the viewport, add a second hidden viewport where you actually draw stuff than copy the fully drawn viewport to the new one. even if you copy pixel by pixel the similarities between frames will make it look significantly less flickery. this is what framebuffers are, and that explanation is a rudimentary implementation of a back-buffer.
Heads up: in excel, while using the built-in vba macros, You can speed up the code/formatting by about 20x's by turning off screen rendering while making updates. That means: Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual //you may have to use whatever number is represented instead of xlmanual... // ... make updates ... Application.Calculation = xlCalculationAutomatic // you would need the number that represents "xl calc automatic" Application.EnableEvents = True Application.ScreenUpdating = True
@@SethEric That's a brilliant game engine that you built there. I'm actually really impressed. I haven't seen anything this enthusiastic in a long time. Keep up the good work.
At first I felt sad that I probably wouldn't ever be able to create sth like this, but then you had to modify a Webpack config which is my bread and butter. I'm fine now. lol
2:30 wtf, why dont you put all this data in some config object and iterate over it, instead of calling the same function with different arguments 200 times? Like this: config = [{offsetY: 0, offsetX:-1, color: darkCurrColor}, ...]; for e of config{ view.getRange().getCell(rootRow + e.offsetY,roolCol+e.offsetX).format.fill.color = e.color; }
Just found your channel and your videos are amazing! I'm actually shocked the algorithm hasn't picked up your videos yet. Super engaging, pacing of jokes was great and made it so fun to watch, you didn't waste my time with useless talking. Maybe it's because you didn't hit the 10 minute mark on the video haha. PLEASE keep making videos, you're already in my top 10 RUclips channels.
Thank you so much! :)
I think it has just picked him up just now!
Exactly!
@@Unpug it has finally noticed
Took the words right out of my mouth, this guy deserves so much more recognition!
Now make a stealth game called Splinter CELL("game", A1)
Don't tempt me lol
Lmao best joke I ever heard
Good one 🤣
there's actually a cellphone game called splinter cell, also a stealth game hahaha
@@wohoi It's actually a PC, PS, and Xbox game series.. but ok.
The last thing I expected to see today was an RPG made on Excel 😂
Looks rad great job!
Thank you so much!
Even with the title "I Made A ROLE-PLAYING Game in EXCEL! | Devlog"?
Honestly, that's on you.
This reminds me of when I was so bored in statistics, b/c I already knew everything, that I spent my time in class building an RPG using just my ti-84. When I tell you it took me over a MONTH to code the name entry system! It's almost like it wasn't made to make games or smthn. I made a surprising amount of progress, but sadly it got wiped from my calculator when I forgot to protect it before my SAT. I cried when I got home that day and it wasn't because of the test lol. Maybe I should start it up again for fun.
That’s awesome! I’ve heard a lot of similar stories from other commenters!
Please do it again and make a video out of your project. Will watch it
If you want some unsolicited code review, instead of having 300 lines of code to draw a character, store the color of each pixel in a 2d array. Then you can iterate through the array, add the characters location offset to the array location, the draw that color value to that location. You'd have an array declaration at the top of the file and then a double for loop. Then you can edit the sprite by just changing the array. For bonus points, use a hash map so that you can store the colors in the array as a single character, then the array will look like the sprite, sort of.
Yes.
Iterating through arrays is slower though.
That’s actually pretty awesome,
Coolest thing I’ve seen all day.
Thank you so much!
Man says he is here for the pain and then uses JS instead of VBA. This is the content I am here for. Good stuff.
@@IndigoGollum You could of course code in the hardware, although it makes debugging costly.
For the first time RUclips algorithms work and suggest good videos
I saw you on reddit and said "This looks pretty cool"
And BOOOY I wasn't wrong
Don't know how did u do it. I've seen the whole video and I had fun. Subscribed to SethEric
Thank you so much!
Hey with the drawing normally any graphics engine has the partial drawn canvas problem, the solution in most case is to have two canvases, and swap between them as one finishing drawing. Maybe you could emulate this behaviour by having a different tab in excel and swap between them as the next frame finishes drawing?
This is interesting! Haven’t thought of that!
@@SethEric It is simpler. Draw new frame in Temp canvas. Then copy it on to View canvas (so you never clear View). With this you only somitemes see a line between old frame and new frame
Watching this feels like I looked up help for my algebra homework and found calculus physics extreme
Lol thank you!
2:26 represent the sprites with 2D arrays of color values, then create a method to draw the arrays
Yeah but that would make too much sense 😂
@@SethEric You could use Tiled to make the CSV file than make your array
@@SethEric Next step: don't clear the entire screen, look at the difference between old and new positions, calculate the pixels that are no longer occluded by a character and redraw the background only for them. (I know very complicated, but no flicker)
"This method of doing things is actually pretty scalable"
you 100% deserve more subs
Thank you!!
It’s insane you don’t have more subs yet. You’re great man.
Thank you so much!
The chair break...🤣
I'm glad you enjoy my suffering XD
Awesome! This reminds me of when my buddies and I used to make animations and games on our Ti-83 Plus calculators in high school.
That’s awesome!
Same! The TI-83 was the first thing I ever really programmed. I got a C in calculus because I was programming an RPG instead of paying attention.
And just when I thought I had seen all that Excel can do... this video pops up. Absolute madlad.
4:20 I see what you did there mister
Hehehe
If he writes Excel in his CV, he means it
“Extensive experience”
Not what I was expecting to see today lol... great work!
Thank you! Haha
i was just thinking about a game in excel and this guy made one one. Wow!
Never think excel can do this, so cool! keep up the good work!
Thank you so much!
This is my kind of content, thank you so much.
Thank you!
how you can have under 1k subs but your content is god tier
Thank you so much!
Bro that's awesome, never knew excel was so powerful
what a madlad, you're a beast mate. subscribed.
Thank you so much!
Nice man! hope too see what you have more in the future!
Thank you!!
Really cool!
Maybe a silly remark, since it seems kinda obvious - but why the white flickering?
It seems a bit like you first reset the cell back to the background color (white), and then you repaint the entire wizard or something. Technically doing two draws per cell per wizard repaint.
Especially when you pause the video, you can see the wizard is interlaced with white vertical lines, which shouldn't be necessary, and probably cause the laggy looking effect
I'd think you can solve this by not resetting to white first, but doing a diff and only repaint the cells with the colors that need to change
A lot of the cells neighboring cells are already the correct color, and only the edges seem to need redrawing - if that makes any sense
I thought about this as well, I had messed around with it a bit but it started to get too in depth for a short video. I’m sure there’s a great solution, I just didn’t take the time to figure it out.
the vba code for anti flickering is application.screen update false then write your code and then update screen to true. at least it worked for me.Schau dir "Excel Game// a land goo's crazzy" auf RUclips an
ruclips.net/video/4mVvstwaAgc/видео.html
Adding to that note about checking the difference- If you add a sheet where you can draw in your character or even a tile set for the character, you could paint it in like the enemy and reference the space around your character sheet root pixel instead of having so many lines of code. You could even just check a bounding box and ignore any pixels with a certain color value so it doesnt appear as a box in game. I'm not sure how referencing the sheet data would work from VSCode but I would guess you're doing plenty of that in other areas.
the home depot edit fucking killllllled it ahah
Hahaha definitely my favorite part
@@SethEric ur channel is about to blow the fuck up. Stick with it!! Pretty soon you won't have time to reply and like everyone's comments :)
@@zaqarius thank you!! And I’ll always try my best!
love it, for me who stuck a lot boring time in excel, this feel good
-what game engine do you know?
-EXCEL 🔥🔥🔥
LOL when you said you had to change webpack to get the popup to working i totally felt you, webpack is an enigma to me LOL
How much underrated you are?
*Yes*
Hahaha thank you!
Your a legend by doing this
Thank you haha
This is absolutely amazing. I could only imagining making and ideal clicker game in excel. To make this they should be paying you for marketing the shear breath this program can go. Absolutely amazing
Thank you!! Sponsor me Microsoft lol
I once made a rogue like in excel. Youre inspiring me to keep developing it
You should! That’s awesome!
The real impressive thing of this vid is how you did not fall when the chair broke
Good job bro! Really nice content!
First of all, underrated channel and content and dude the game is sick!!!! Btw you could have made the whole game in the popups maybe? It might have been maybe easier idk never tried js. Great content dude you deserve a sub!!
Thank you! And yes but that would’ve been too easy lol
@@SethEric True lol and maybe you can someday try out VBA too
I tried hard to make a pathfinding feature to make a single chase another single cell running. But you have made a literally fine demo game.
What in the world....?
Seth, this is crazy good
Thank you haha
What the fuck...
Bruh You are a genius you deserve more views and more subs
Thank you so much!
The world's first ERPG :-O (Excel Role Playing Game)
I like it!
ERPG, has a different meaning
ERPG, has a different meaning
You can actually load the character as sprite and loop trough pixels ignoring transparent pixels and using position relative to center pixel.
That sounds super useful! Any more info on how to use that using the API shown in the video?
@SethEric If you want anwser, you gotta ping this guy, youtube comment section is trash...
@Jakub Dóka
I think what you could have done with the characters is make the characters on a hidden spreadsheet inside excel by hand (instead of writing code for every pixel), then access that spreadsheet and copy the cells over to your main sheet. I'm not sure which excel API you're using, but most should support this. Since it's 1 call, it should probably also be faster maybe?
You said you tried a lot of things, so I'm not sure if you already thought of this way and it didn't work out maybe, but I wanted to bring it up nonetheless.
That's what I thought of doing, but in the basic VBA editor you can't copy more than one range at a time.
Why am I not surprised that a "Game in EXCEL!" video is 4:20?
hehehe
He took "I know Excel" on his resume to a whole other level.
Am I the only person who's mind immediately went to noita when I saw the thumbnail
Tough task seems so, but definitely possible. Nice job!
This man must go viral
I hope!
I love this video. It's a perfect example of someone creating something for the pure joy of it. ❤
This is why I don't worry about people feeling meaningless once AI can do our jobs. There's so much creativity within each of us. When we don't have to worry about doing the work required to meet the needs of our bodies, we have all the time to do the work that satisfies the needs of our souls. We'll work on what makes us happy. 😊❤
Yes, we still need to figure out how to make a living. I'm not that naive as to think that will be an easy problem to solve. Still, I believe that's an easier problem than figuring out how to make people feel meaningful.
Thank you so much! Awesome perspective :)
We shouldn't need to have to make a living once we are at the point that there are almost no jobs because of AI.
should've coded a pixel art editor for the pixels. in excel. and coded that in a custom coding language made in excel. which you made using a calculator. that you built yourself.
but seriously: this is too underrated! keep it up!
Funny this is I had actually thought about making a pixel art editor to streamline the process lol
Absolutely incredible
Thank you!!
I love this, but I hope my students never find out about it
hahaha thank you!
comment for the algorithm, vid was funny af kekw
Thank you!!
Dude this man is insane
Hey, ya know google sheets has a Node.Js api. I've used there C# api to create global leaderboards for school projects before. Meaning that you could technically, have multiple clients upload or download values to a google sheet. Which means you could probably figure out some simple multiplayer mechanics with that. Would love to see that being used in a project. Great job btw!
Interesting! I’ll have to check it out!
I am impressed that you can make a video game in Excel
Thank you!
you have great potential!!!
Thank you so much!
damnit, I've been working on a RPG in Excel for 6 months now and just learned you beat me to it!! I'm only using VBA though.
This reminds me of a time I tried to make a text based aventeure using folders and paint JPGs in middle school. I couldn't get very far because of winXP character limits in the directory bar though :/
I used to do the same thing with powerpoints lol
cool I wanna play this at office
That's really impressive, wtf
Thank you!!
Fun fact: used one of the character you used from google for my game aswell
very cool! I actually found these characters on the unity asset store!
@@SethEric yea idk if it was google or asset store
This is so very cool!!
Thank you!!
Damn
didnt expect that!!
you can ask Excel to stop the screen update while the code is manipulating the character for the next position using Application.ScreenUpdating = False and turning on again when finished, to stop the drafting effect
Interesting! I’ll have to see if add-ins have a similar function
Somewhat tell me this could be the future..
But I'm imagining he was using VBS inside Excel to run all the logic and number. In fact, if game engine design to be somewhat like this, should be fun to assign logic to each cell, while having sprite support natively.
Interesting idea!
Interesting approach. I will have to look into how you actually were doing this as I did not know it was possible to use JavaScript in Excel. A friend sent me your video as I made a quasi-roguelike in Excel but I did it all via userforms and VBA. (Unfortunately, no way to really get animation other than "jumping" from one location to the next unless you have a really powerful computer.) However, creating tables in the Excel sheets and using lookups, I was able to get all the data to create levels at runtime in the userform. I also coded it in with multiple difficulties so you could see the whole map, only just a small area around you, or where it mimicked fog of war and stayed visible after you walked past a section.
That sounds super cool! I was able to use Javascript with Microsoft add-ins. More so using Excel as a canvas
This si incredible
Milky video my dude!
What this game needs is those walking tree guys from LotR.
You know... Excel-Ents.
That'll be in DLC ;)
So Underated.🔥
I use Excel to simulate elections for my worldbuilding projects. Gotta be my favorite IDE. :D
So awesome, framebuffers in excel 😆
an approach to avoiding issues with flickering would be to calculate the diff from one frame to the next rather than clearing the previous frame. so you'd iterate over all the pixels in your old frame and new frame.
if its a pixel in the old frame but not the new frame, clear it.
if it's a pixel in the new frame but not the old frame OR both frames but the color changed, draw the new color .
if it's a pixel in both frames but the color didn't change, do nothing.
that way you dont get any intermediate colors and also avoid unnecessary draw calls
Definitely a more elegant solution!
Nice idea. It looks like an old game with graphics issues. I like it. 👍
Thank you so much!
instead of clearing the viewport, add a second hidden viewport where you actually draw stuff than copy the fully drawn viewport to the new one.
even if you copy pixel by pixel the similarities between frames will make it look significantly less flickery.
this is what framebuffers are, and that explanation is a rudimentary implementation of a back-buffer.
Teach me your ways oh great master
This feels like it's going to be a viral video at some point. Awesome work, idk how you can stand developing in microsoft products though xD
Thank you so much! It's a struggle lol
Heads up:
in excel, while using the built-in vba macros,
You can speed up the code/formatting by about 20x's by turning off screen rendering while making updates.
That means:
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual //you may have to use whatever number is represented instead of xlmanual...
// ... make updates ...
Application.Calculation = xlCalculationAutomatic // you would need the number that represents "xl calc automatic"
Application.EnableEvents = True
Application.ScreenUpdating = True
Recommend trying out the js version of those statements and giving it another go -- you may find your game quite playable!
Thank you! I’ll have to check it out!
As a surgeon named Ryan Reynolds once said... "But Whyyyyyyy?"
Cuz he can
because if I don't who will?
Hi. I'm a brazilian VBA developer who just started teaching how to use OpenGL with Excel VBA. What do you think about it?
I love videos like this
I'm glad!
Interesting. I never knew Javascript could be used with Excel like that.
I was surprised too!
@@SethEric That's a brilliant game engine that you built there. I'm actually really impressed. I haven't seen anything this enthusiastic in a long time. Keep up the good work.
@@CodemasterJamal I appreciate the kind words!
At first I felt sad that I probably wouldn't ever be able to create sth like this, but then you had to modify a Webpack config which is my bread and butter. I'm fine now. lol
This is a mad scientist.
Sometimes feel like one lol
How is the editing so good!
Thank you so much!
2:10 is funny
"Every application that _can_ be written in JavaScript _will_ eventually be written in JavaScript" -Jeff Atwood
Absolutely lol
great video! jokes were on point
Thank you so much!
2:30 wtf, why dont you put all this data in some config object and iterate over it, instead of calling the same function with different arguments 200 times?
Like this:
config = [{offsetY: 0, offsetX:-1, color: darkCurrColor}, ...];
for e of config{
view.getRange().getCell(rootRow + e.offsetY,roolCol+e.offsetX).format.fill.color = e.color;
}
Because that would make too much sense, also I’m horrible with JavaScript lol
@@SethEric Hahaha okay :) Great video by the way!
@@SEOTADEO thank you!!
I had a friend in elementary school and you look exactly like his dad.
Interesting lol
That is insane
Interesante, ya probaste usar sprite o los shapes en vez del picel arts? saludos
Looks at video length.
Nice. I'ma click that
;)
you really ***excelled***
I like it lol