Another fetature to add to the portal system: a variable that stores the coordinates you teleported from. This is how buildings work in pokemon games; it allows you to reuse the same map(eg. pokemon center, game corner) for different cities. You'll need to add a flag to the portal struct telling it to save/not save your coordinates before entering, and another one that tells the portal to use the stored coordinates as its destanation.
This game has some serious potential. I get why you use the wasd + enter movement system, but wouldn't it be just a little more intuitive and user-friendly if you'd use the standard wasd control system? And then for dialogue and any other interaction the "console"? Also, how much time have you spent on this so far?
It's in the console, because the game's in ASCII, so before any action the user must press enter. It's not possible to use the standard control system.
I would add simple WASD commands, but it is just kinda awkward in Rust as far as I know, as there nothing in the standard library for this, and I believe no cross-platform third-party libraries exist for this purpose yet :(
I know in C/C++ you have access to getchar() which pulls one char without waiting for enter, so that might work if you can find out how to use it in rust.
I made a C++ game just like this. It even had purple portals like you have. My portals had `*` tho. I had a stationary map, but a sliding map, like you have, May allow for some interesting effects. Also, I had chars like `#`,`$`, and `%` representing enemies on the map that would be generated and move if you left the area. Those enemies had randomly generated names and text Icons when you went into a fight. At the end of the fight, you could steal a skill that they had to replace your own. Skills had a random damage amount given to them.
@@maximkhanov4788 clearing screen isn’t noticable, *if you do it right*, i’ve seen terminal text editors, they were fine and my own text program with cars moving and screen clearing ALL THE TIME
When you said about a system to automatically add portal coordinates, i initially thought of something in the world chunk file. Like, you would type "1" to indicate a portal, and it would expect some id after it to link it to another portal in the map. For example, i have 11 in chunk 0_0 and 11 in chunk 100_100. When the map loads, it would load them up and link them. I don't know if it would be more difficult to implement, but for me it sounds easier to use than the world editor. But of course, the world map editor has some great potential to future improvement. Anyways, love your videos! This series is awesome.
hey, would you recommend anything in order to transition from java to c++? I just started studying computer science in university and I know some pretty basic java (OOP, inheritance, polymorphism and what not) but I want to get some fast learning in order to make a game in c++. Thanks.
This game could be amazing :D Please continue working on it!!! I think you should consider putting sleep & render commands in the loop that processes the keyboard input buffer. Although "realtime" WASD input is probably not possible the movements would look much smoother that way and the player couldn't travel infinitely fast. I'm pretty sure that everything the player would type while this loop is running would get buffered by the terminal window itself and get put in afterwards automatically.
Interesting video! I'm creating my own programming language, so I would like to implement that game in my programming language for, like, completeness test when I, well, finish the language!
Suggestions: Make the game grab all input and move the normal way (But I suggest Using arrow keys instead of wasd), then implement some action button (maybe a to confirm and s to cancel, or other convenient keys) and a third, console button that opens a small console to do any kind of console commands you wish to implement :3
@@Hopsonn what if you set the game to send enter key automatically every frame? Then you stop auto pressing enter when you open the console, you add any non command into an ignore list and all pressable buttons get handled 👍
It depends what you want from the IDE. If you're used to IDEA or any JetBrains IDE, I'd use the plugin (and, ideally, in CLion since it has debugger support (on Linux, macOS and MingW (not MSVC))). If not, the vscode RLS plugin is great as well.
what do you think of codeblocks? Should I just switch to Visual studios code, or would codeblocks be suitable enough for practically everything needed?
I actually created something very similar in c and assembly which works on mac and linux and dos, it just uses keyboard commands, the oibjective is a full blown rpg, i have also created a port on the nintendo switch by rewriting everything on fuze (an amazing eshop program)
Sander Bos ye but that implies the player doesn't move using w if that makes sense, like ### #. # #@. #. . Imagine this scene and you type waass The player would move up first because of the w, but the aass would never happen as the player is blocked. Hence I say the whole thing :p
ah, so the aa and ss gets ignored because the program failed to move to the left when it got to the first a, got it. thanks for explaining, could've gotten it if I had taken a little bit more time to think about how your program works internally. :p
can you PLEASE show how to make a character move by just clicking wasd or the arrow keys (not in a console, but like in "mayor" games, like portal, minecraft etc. etc.)
I made a video on this a while ago. ruclips.net/video/GH7mN_BVVCs/видео.html&list=PLMZ_9w2XRxiZq1vfw1lrpCMRDufe2MKV_&index=17 Please be aware the series is not great and ends at episode 27 (Before anything really useful is done) if you plan to watch it
MORE ASCIIMON! make part 3!
:'(
@@projectjellyfish4648 :'(
@@MilkshakeDev ;'(
@@eboatwright_ :'(
@@sighawrylofi ;~;
Finding this made my day. I hope you continue this project!
Cool stuff, man. Love seeing you progress on these projects
Another fetature to add to the portal system: a variable that stores the coordinates you teleported from.
This is how buildings work in pokemon games; it allows you to reuse the same map(eg. pokemon center, game corner) for different cities.
You'll need to add a flag to the portal struct telling it to save/not save your coordinates before entering, and another one that tells the portal to use the stored coordinates as its destanation.
This game has some serious potential. I get why you use the wasd + enter movement system, but wouldn't it be just a little more intuitive and user-friendly if you'd use the standard wasd control system? And then for dialogue and any other interaction the "console"?
Also, how much time have you spent on this so far?
It's in the console, because the game's in ASCII, so before any action the user must press enter. It's not possible to use the standard control system.
I would add simple WASD commands, but it is just kinda awkward in Rust as far as I know, as there nothing in the standard library for this, and I believe no cross-platform third-party libraries exist for this purpose yet :(
What about forcing the program to automatically press enter after every character typed? :)
I know in C/C++ you have access to getchar() which pulls one char without waiting for enter, so that might work if you can find out how to use it in rust.
Paweł Cholewa it appears like he wants a cross platform support
I made a C++ game just like this. It even had purple portals like you have. My portals had `*` tho. I had a stationary map, but a sliding map, like you have, May allow for some interesting effects. Also, I had chars like `#`,`$`, and `%` representing enemies on the map that would be generated and move if you left the area. Those enemies had randomly generated names and text Icons when you went into a fight. At the end of the fight, you could steal a skill that they had to replace your own. Skills had a random damage amount given to them.
So,give the link!
Could you add a short delay in each step so it the player appears to walk that way instead of "teleport"
yeah I agree
That would require him to draw each time the player stepped which would look sloppy unless he didn't clear the screen which would be harder
@@maximkhanov4788 he could just set the console cursor on the (0, 0) position using \x1b[H or \33[H escape sequence instead of clearing the console
I think he should only update the parts of the screen where the actual tile needs to change.
@@maximkhanov4788 clearing screen isn’t noticable, *if you do it right*, i’ve seen terminal text editors, they were fine
and my own text program with cars moving and screen clearing ALL THE TIME
This is super cool, love your console interface especially. Working on a similar project in C++, seeing your approach to things is really interesting.
my favorite programming language
SweetTea no, python
Continue !!
I really like the ASCII aesthetic
*James Ritchie ;)
Loving this series, excited to see more :]
This very cool to watch, please continue the series :)
When you said about a system to automatically add portal coordinates, i initially thought of something in the world chunk file.
Like, you would type "1" to indicate a portal, and it would expect some id after it to link it to another portal in the map.
For example, i have 11 in chunk 0_0 and 11 in chunk 100_100. When the map loads, it would load them up and link them.
I don't know if it would be more difficult to implement, but for me it sounds easier to use than the world editor.
But of course, the world map editor has some great potential to future improvement.
Anyways, love your videos! This series is awesome.
That's actually a fantastic idea, I might give something similar a try. Thanks!
hey, would you recommend anything in order to transition from java to c++? I just started studying computer science in university and I know some pretty basic java (OOP, inheritance, polymorphism and what not) but I want to get some fast learning in order to make a game in c++. Thanks.
Is getting more interesting, nice editing btw
This game could be amazing :D Please continue working on it!!! I think you should consider putting sleep & render commands in the loop that processes the keyboard input buffer. Although "realtime" WASD input is probably not possible the movements would look much smoother that way and the player couldn't travel infinitely fast. I'm pretty sure that everything the player would type while this loop is running would get buffered by the terminal window itself and get put in afterwards automatically.
This is awesome! I hope you'll make a third part :)
Please continue this series!
Interesting video! I'm creating my own programming language, so I would like to implement that game in my programming language for, like, completeness test when I, well, finish the language!
Really cool and interesting as always !
Weird... I'm notified of your videos a day after their uploaded.
Does Rust really have no getchar or readkey equivalent? That input system really sucks imo.
The saga continues! :D
Suggestions: Make the game grab all input and move the normal way (But I suggest Using arrow keys instead of wasd), then implement some action button (maybe a to confirm and s to cancel, or other convenient keys) and a third, console button that opens a small console to do any kind of console commands you wish to implement :3
I would make it move.normal way, but as I said in the video,.it's not really very easy or even very possible
@@Hopsonn what if you set the game to send enter key automatically every frame?
Then you stop auto pressing enter when you open the console, you add any non command into an ignore list and all pressable buttons get handled 👍
@@miguelvieira3687 don't think that's possible but I'll look into it thanks :}
Wow, just ~200 more views and you'll have 4 million views on your channel! Congrats!
good series. pls continue
Btw what dev enviroment is this?
Visual Studio Code
This is not the same thing as "Visual Studio"
Would you reccomend that over the the Rust extension for IntelliJ IDEA?
I haven't used Rust on IntelliJ, but I would say yes as VS Code is a much "lighter" experience and doesn't take forever to open on startup :p
It depends what you want from the IDE.
If you're used to IDEA or any JetBrains IDE, I'd use the plugin (and, ideally, in CLion since it has debugger support (on Linux, macOS and MingW (not MSVC))). If not, the vscode RLS plugin is great as well.
what do you think of codeblocks? Should I just switch to Visual studios code, or would codeblocks be suitable enough for practically everything needed?
So cool Keep up the good work! btw i like the current way of movement but change it if you want
So... I just made a wire world in the terminal with rust, which was definitely interesting.
How do I actually open the game? I have the master file though?
When is this project going to be continued???
When Half-Life 3 releases
Music from that ice water level in DKC2 :)
I actually created something very similar in c and assembly which works on mac and linux and dos, it just uses keyboard commands, the oibjective is a full blown rpg, i have also created a port on the nintendo switch by rewriting everything on fuze (an amazing eshop program)
Never stop with these wacky edits
More Asciimon!
Yay!
Also Are you doing anything for Ludem Dare or will you do anything for some game making comps???
Mike64 - TheRealPower you should join the Discord if you want to ask questions
Is rust object oriented?
Joshua Daley yes
Okay thanks!
Yes it is
@Muhammed Dude, you need to chill
@Muhammed Did you even read what i said
cant wait for part 3! :)
please keep this series going! EVERYONE AGREES WITH ME!
Eait would'nt typing answers or "Help" mess with moving with wasd?
nope
I love it
I almost didn't recognize you because you weren't coding in Code::Blocks!
Please continue
Neat!
BRUH
I want more how come you're not doing more ;-;
At 4:43 you've written on the bottom of the console that 'waass' moves you left twice and down twice. Shouldn't it be left twice and down once?
Sander Bos no, because it moves the player up first
But 'waass' comes down to (w) y -= 1, (ss) y += 2, (aa) x -= 2. When added together you get y -= 1 + y +=2 is equal to y += 1, right?
Sander Bos ye but that implies the player doesn't move using w if that makes sense, like
###
#. #
#@.
#. .
Imagine this scene and you type waass
The player would move up first because of the w, but the aass would never happen as the player is blocked. Hence I say the whole thing :p
ah, so the aa and ss gets ignored because the program failed to move to the left when it got to the first a, got it. thanks for explaining, could've gotten it if I had taken a little bit more time to think about how your program works internally. :p
No part 3? :(
YES!
Any party 3?
very nice
Is this project abandoned?
Yes
@@Hopsonn [insert sad face]
Part 3...?
What about part three?
Impressive!
You could give the characters background colour, making the game look more colourful, rather than being so dark due to the black background.
Some consoles also support blinking characters, and bold characters.
Dude you should try Metal, it’s lower level than OpenGL es
Très bon.
Do you have braces? Cause it sounds like you are talking a bit weirdly because of braces. Sorry if this comes off as rude, i’m just wondering.
lol it is fine, I agree with you
Yes I do have braces, they are hopefully off by the end of the year :)
Hopson nice! Mine went off this march luckily, now my teeth feel really smooth in comparison
ohh that makes a lot of sense
looking forward to hearing your voice without the braces :P
Thats so cool!
Please make a new episode!
YEE
Dwarf fortress in first person
Make an part 3 pls
If Rust were my grandchild I would squeeze its cheeks.
[funny joke]
the trashman [even funnier reply]
[the reply of wondering why such a great joke did not get like a million likes]
[comment on how genericizing youtube comment habits has already been done before and therefore is unoriginal in itself]
[laughs in spanish]
@@1x5x7 [laughs in C++]
Anyone else hyped for Twitch Plays Asciimon?
probably won't be a thing
can you PLEASE show how to make a character move by just clicking wasd or the arrow keys (not in a console, but like in "mayor" games, like portal, minecraft etc. etc.)
I made a video on this a while ago.
ruclips.net/video/GH7mN_BVVCs/видео.html&list=PLMZ_9w2XRxiZq1vfw1lrpCMRDufe2MKV_&index=17
Please be aware the series is not great and ends at episode 27 (Before anything really useful is done)
if you plan to watch it
tnx :D btw love your videos
Recreate ELITE II or Elite: Dangerous?
Make portals out of two square brackets it looks better. [ ]
cool, but shouldnt it be in c++
why
its faster? cant catch them fast enough you know
rust has basically the same performance as C++.
Besides, performance is literally not a concern for an app like this lol
Hopson so the interpreted language could potentially do the same speed as Rust or C++ in such type of games?
Craftist yeah pretty much, there's nothing "heavy" going on here
1/10 not enough ASCII
I thought this would be in the game rust, like when people make calculators in minecraft. I'm disappointed :(
Part 3??