It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
mrkgnao: I never got any weapon (played the entire game doing only 1 point of damage per attack).
avatar
ciemnogrodzianin: What? So — how you've survived enemies dealing 2 points of damage?
Very early on I found the [Something] Armor, which gives you 33% evasion. That was enough. I fought everyone I encountered and killed everyone (except the dog and the ghost). Since in most battles I lost less IP than the reward, my IP usually went up and towards the end hovered around the 90-110 IP mark (enough to kill a 50-60 IP enemy without any trouble). I also never bought anything, so never lost IP due to that. I never died.
Aaaah !!
I was playing right now to try to finish the game, I was confronting the final boss when the server suddenly shut down, and now I can't login anymore ! :((
Hmmm another bug might be around.

Try again, I just restarted the server.
That's it, I finally made it ! ^^

Nice little game Testor0, it was fun, despite the bugs.
That reminded me a bit of Candy Box, although in a different style (Hard mode https://web.archive.org/web/20170610192852/http://candies-hardmode.aniwey.net/).
And check out its sequel Candy Box 2 too !

Congratulations to the Winners ! :)
Post edited October 15, 2020 by Pouyou-pouyou
Making of the.ridiculousgame.ca (v0.1)
Intro
Well well well, as I explained in the introduction, I wanted for a long time to create a video game.
I was planning to make it a bit fun if possible, and not to complex for a first version.

Mandatory criteria
The important criteria was to be online/multiplayer and text-based.
I had to think online/multi from the start, rather than make an offline/solo game and try to adapt it later, as I know adaption doesn't work well generally.

Back to reality
I work in IT and I made my studies in IT field. I had the opportunity to learn many things including algorithmic, basic programming, oriented object programming, databases... but I never was a developer. Then I don't know the design patterns that, if I remember, dictates how programming is supposed to be done.

Programming language
I chose python.
I used it a lot in the last months and I think it is an easy language. It allows readily to manipulate the text values and the connection with the other hosts.
As far as I know, there is two ways to develop: basic or oriented-object (O-O).
I tried to think a way to do it O-O, but I didn't succeed in using it intelligently. I changed back to basic. I'm not done with O-O, I plan to upgrade the code later.

Client vs. Clientless
The development of a client might double the development work, and it requires trust between the developer and the players.
Non-Web "clientless" limits the interaction. I played this kind of game in the past so I had an idea of what I could do.
Hmm... clientless it is!

Theme choice
I have many ideas, I selected the one that was adapting the best with all of the requirements: a Maze Dungeon.
I search for a way to make the maze. I found many available resources on the Internet, most of them are based on an algorithm and some of them are in Python. Yeay.

Putting everything together
I began with having one player walking around, according to the map configuration. Once I had it working well, I made a main program that, 1- is creating a new map, 2- is waiting for the players to connect. Then a new process is created for each player: it handles the player actions independently.
I chose the room/map size according to the Windows telnet configuration. If I had chosen I bigger map, bigger ASCII art, most of the players would have troubles to get a correct display. Even if telnet is not user friendly, I wanted to keep it simple at most.
The next step was to add the monsters, the mechanisms (signs, chests, NPCs...), the objects and theirs respective actions.
Finally I added special enemies, including Sanic, the immortal Ghost, the nice Dog, the fake Chest (who has lost half of their IPs? :P) and the crazy&mad customer BOSS.

Fighting system
There is probably many recommendations on how to do that well balanced from the start to the end on the Internet.
I designed the fights the way they are from the start. I tested it and thought it would be ok for the first version. In fact, I wanted people to loose all of their InternetPoints in order to make them discover the magnificent Fountain of Youth (Jouvence in French).

Laziness
Ok I'm a bit lazy and I wanted to have the game released. It is great to have people playing in your game and I couldn't wait for it.
That is the main reason for the map changing after a reboot. When the map is created, it is loaded into the memory of the server and was not saved, while the players information were saved into a file. It was possible to do it for the map/maze. I didn't :P

A bit of security
I'm paranoid on security. Then before asking people to use Telnet, I made sure to explain what it is.

The password are protected on the server, I used some hashing and salting. Once the protection is applied I can't decrypt the cypher myself.
Even if it is protected on the server, when you use telnet, the traffic between the client and the server is not encrypted. As an example, if you share your network with someone that listen to the traffic, that person would be able to get that password.
After speaking about it with a friend (Hello friend), I decided to specify the password myself. I 1- avoid having some players choosing the same password they use somewhere else and 2- avoid getting one of their account hacked because of the game :)

The bugs
Before releasing the game I tested the game in many ways, but it's hard to think of all the possibilities.
It had (and still has) some remaining bugs.
- The main bug was in the Chest rooms, with bad luck the player was caught in an infinite loop with the server. As I added a security feature that was forbidding a user to connect twice, the player could not login again. Ooops :(
- Another known bug happens when the player send (could be by accident) a non-ASCII character to the server.

Working Time
I began 3 weeks ago. I developed the game for 2to3 hours a day, weekdays only. It took around 35 hours in total I think.
All of that work isn't lost. I should be able to reuse my code for some new multiplayer games.

No Real time and not multiplayer
As someone indicated, it is not a real-time game in the end, but turn--based.
Also, there wasn't some real multiplayer interactions. You could talk with others using ":" as indicated by the Tips 1 sold by the Sorcerer and you were sharing the same monsters (first one to put the monster to sleep get the loots).
I wanted to add some mechanisms involving 2 to 3 players, but I decided that it would come with the next versions as the code was already complex.

Questions
If you have additional questions, you can ask :)
If you have similar projects and want to talk about it, you can contact me here or on the GOG chat :)

avatar
Tallima: I tried to make a multiplayer version of my hacker game yessir hunt but have come up empty. It's tough!
Do you want to share a bit about your project?
Post edited October 15, 2020 by Testor0
avatar
Testor0: the fake Chest (who has lost half of their IPs? :P)
It was me! But it wasn't a mistake. At some point I decided to check what happens when I open it. I expected fight to begin :D As I was close to death (AFAIR), I didn't lost many IPs ;)

Thanks for all the details. That was really interesting.

This kind of hobby project - if finished, released and successful (this one I consider is) - always impress me. It requires a lot of determination and consequence to organise your work, do not lost yourself in bad design and solve all the problems faced. My respect!

One more question - did you reached some kind of dead end in your work? A moment you've realized that some element of the design is wrong and need to be done once again / from scratch?

And one more - is there any simple and intuitive python library, which covers telnet communication?
avatar
ciemnogrodzianin: One more question - did you reached some kind of dead end in your work? A moment you've realized that some element of the design is wrong and need to be done once again / from scratch?
I tried many times to begin that project, and failed. I wanted to make the online/multiplayer "engine" first. I struggled to make one that was working fine. Once I had it, I couldn't stop developing the game, the hardest part was done.

avatar
ciemnogrodzianin: And one more - is there any simple and intuitive python library, which covers telnet communication?
I asked the players to use Telnet client, just I order to get them connected to the server. I didn't used the real telnet protocol, but only RAW. It means that my script was receiving, analyzing data and sending answer in bulk form. For doing that I used "socket" libraries that manage communication and threading that allows the program to manage multiple sub-processes at the same time, 1 for each player. That is commonly used in programming (python, C...)
About telnet, there is the telnetlib library that allow you to use the real telnet protocol (client and server if I'm not wrong). I think it could be interesting and used for creating real menus and other ways to interact with the players. It might require more development.
Post edited October 17, 2020 by Testor0