Skip to Content

Print, Type and Play

22 replies [Last post]
larienna
larienna's picture
Offline
Joined: 07/28/2008

I won't explain the reason why I thought of this (because it's late), I just want to know if it could interest some people to play such kind of games. Which could also be solo variants for existing games.

So far I called this medium "Print, type and play". It consist in playing a strategy games as a video game on a command line console. The user interface will be done with a command line, to display information and perform actions in the game. Some components like a map or some reference table could be printed to make the games easier to play for the player, all game status must remain in the computer since the artificial intelligence would need to have that information to make a decision.

I want to know if people would be interested to play such games for free. The idea is that it could be a way to playtest a game before porting it on a platform that will have a better user interface like an app, or a web page, etc. The idea is to separate the interface from the game in order to make the rules of the game portable to multiple platforms.

The same idea cuold be applicable to solitaire variant for printed board games ( I could start with that). The game would completely remain in the computer, but the player could use the actual board game components to keep track of certain information (for easier analysis). In that case, there will be no printing to be done.

------------------------------------------------------------------------------

Like I said, there are various reasons and advantages why I though it could be interesting do to this. I won't elaborate on that tonight, but if some people thought it could be an interesting format or have suggestion to make regarding it, let me know.

joebergmann
joebergmann's picture
Offline
Joined: 12/29/2016
I've wondered about this too...

Hey Larienna!

I've wondered about this concept as well. I'm surprised there aren't more games like this out there right now. I guess I can see that maybe computers and board games don't "fit" together on a table? Maybe it's a stretch to use both when the computer could just display the board as well? I would be more inclined to use a phone app than a computer. It does seem like one of those ideas that just HAS to happen though, doesn't it? If you need app programming help, I would love to get involved. I think it's a cool idea and would be very "cutting edge".

larienna
larienna's picture
Offline
Joined: 07/28/2008
In fact the idea is to avoid

In fact the idea is to avoid having to program a user interface. And to make an app, you need a user interface.

I have been working on a project for a year which ended up mainly about programming interface and structure without making any game. I want to be able to program other things, but it seems that GUI is so essential that it locks down everything else. So I am trying to find a way to bypass the need of a GUI.

Of course, the console mode could be eventually substituted as an app with maybe key word button that would display the same output than console, but that would be the most generic it could get to have an app without gui.

pelle
pelle's picture
Offline
Joined: 08/11/2008
Already commented on bgg,

Already commented on bgg, regarding existing such games from the early 80's like Tanktics. There were also games that had everything on the screen, including a crude map, but then you also got a nice printed color map included in the box just to make it easier to get an overview (and because computer graphics were not great).

Regarding the GUI, to borrow an expression from Uncle Bob's Clean Architecture (that I read earlier this week), "that is just a detail". Things like guis (and databases, or the web, or any frameworks you use) should live far out in the edges of your application where they do not disturb the rest of the design, so that you can write your business/game logic 100% free for having to worry about such details. If you start writing a functioning game without a gui and just make it work with a simple command-line interface (or in a REPL, so you do not even need to implement any parser yourself) that sounds just like the ideal way to do things.

But I still think you probably want to slap some kind of simple gui on your game, because it could easily make a 10x difference in time spent each turn (eg clicking something on a map vs typing in the correct coordinate) so just some very crude gui made with some tool that makes such things trivial to add would be time that you can easily get back after hours and hours of testing the game (and games need hours and hours of testing...).

larienna
larienna's picture
Offline
Joined: 07/28/2008
Wow, where did you get that

Wow, where did you get that quote from, that is very interesting. It's like if somebody read through my mind.

One problem with mobile app is that they need to be distributed throught the app store unless the device is rooted (I think). So it complexify the deployment of the application, especially for a program that is more like a prototype.

Still if the number of printed componnents is low and can be hold in the hands, like a double sided sheet of paper it could be easier to handle while playing on a computer.

Sometimes the execution of certain task is easier with the command line. What really sucks with the command line is the visibility of the information. This is where printing pages (or the PDF) comes in for non-variable information.

Still, like I said, it would be more like an intermediary form that would be used to release the product later as a full GUI game. But being able to play a game at that stage, could be very interesting.

pelle
pelle's picture
Offline
Joined: 08/11/2008
Was looking for a review of

Was looking for a review of an old game just now and stumbled upon this one instead (in Computer Gaming World, issue May-June 1983), that I thought you might enjoy:

"CLOSE ASSAULT (CS) is a computer
game very much in the AH tradition —
what they now refer to as "a computer-
assisted game". This means you move
counters around on a mapboard, type
in your moves using a simple coordinate
system, and get information back from
the computer in the same format. There
are no on-screen graphics at all, which
is why the game can be made available
on so many different types of computers."

http://www.cgwmuseum.org/galleries/index.php?year=1983&pub=2&id=10

pelle
pelle's picture
Offline
Joined: 08/11/2008
And here is a review of

And here is a review of Tanktics, the game I mentioned before (Computer Gaming World, issue Jan-Feb 1982):

"The game is played in the computer
but it is impossible to visualize what is happening
without referring to the map. The map is covered
with a grid of hexagons (known as "hexes") and
each hex is identified by "coordinates" (from Al to
FF24) clearly printed on the board. The computer
tells you where things are by giving their coor-
dinates; there are no graphics or pictures what-
soever. At first, taking the graphics off the screen
and putting them on a mapboard may seem like a
step backward, but there are two big advantages.
First, it means owners of Commodore PET's and
TRS-80's can run the game too and, secondly, we
can all enjoy a larger, more complex game this
way."

http://www.cgwmuseum.org/galleries/index.php?year=1982&pub=2&id=2

(Amazing cover artwork btw!)

FrankM
Offline
Joined: 01/27/2017
Universal (bad) interface

Although a terminal is the absolute simplest interface to use, I would go the extra couple steps and wrap it in a web app with simple HTML. You take on the need to maintain the command/output history (which can just be an array of text strings), but gain the ability to run it on a laptop, a tablet, a phone, or even a rooted laser printer. You can later add ad-hoc interface elements (like buttons or an image map) using slightly more advanced HTML without fundamentally changing the "API" between your game engine and the server.

It doesn't need to be a public-facing web server, unless you plan on remote head-to-head play, and even then it'd be way down the road.

This lets you test the game engine without inventing a new GUI. Assuming you built your web app out of something cross-platform, you can automate 90% of your porting when it comes time make real GUIs.

larienna
larienna's picture
Offline
Joined: 07/28/2008
Thanks for the reference, you

Thanks for the reference, you made me see a world I never knew it really existed.

Web display is an option, but it could demand a lot of time to design. Probably less than a object oriented gui, because the logic of drawing output on a screen is similar to outputting text on a page. So most of the work would be formatting the data in HTML.

Maybe it could be possible to have a generic web interface with commands as links or buttons and pages that format the output. When parameters are required, forms could be used. It will be relatively ugly, but could be more convenient to use and could allow adding images directly in the game rather than printing it (ex for maps)

The goal is to jump into game design as soon as possible rather than getting stuck with various gui implementation. Allowing further development of AI and Multiplayer with a server.

It seems Object Oriented GUI are much more complicated to implement than I thought. I am trying to find ways to restrain the OO rules to make it easier to develop and maintain the code. (ex: limiting inheritance to interfaces).

FrankM
Offline
Joined: 01/27/2017
Sorry if I wasn't clear

Yes, sorry if I wasn't clear, but I was envisioning a text (or at least mostly text) interface through the web app. Any images would be gravy.

When I mentioned a "map" I meant a specific HTML tag.

larienna
larienna's picture
Offline
Joined: 07/28/2008
Oh! ok. Makes more sense

Oh! ok. Makes more sense now.

I have read a bot about software for blind people because they actually like command line software or coded language like html.

It seems for them the greatest difficulty is any form of data that has 2 or more dimensions. So for example a grid or a map.

But like I said it could maybe be possible to make a generic web interface to input commands and display results. The only issue I have to reseach is if I make the game a java app, how can I make let say PHP communicate with java.

Most java stuff on the web are applet, which is really not the solution I am looking for, unless there is a way to run the applet in background and make the PHP query that applet.

questccg
questccg's picture
Offline
Joined: 04/16/2011
Let me explain

larienna wrote:
...But like I said it could maybe be possible to make a generic web interface to input commands and display results. The only issue I have to reseach is if I make the game a java app, how can I make let say PHP communicate with java.

Most java stuff on the web are applet, which is really not the solution I am looking for, unless there is a way to run the applet in background and make the PHP query that applet.

This question is up my alley of expertise. Java uses JSP pages which are similar to PHP but have less functionality. JSP pages also allow you to design CUSTOM HTML Tags that can be handled by the Java server that feeds you the properly rendered web page.

Also Java operates differently than PHP. While PHP actually encourages you to embed code in .PHP files, Java works as a multi-tiered environment. You would require JSP (or JSTL for the GUI), a framework such a Struts in the middle or EJBs (Enterprise Java Beans) ran on some Application Server like Tomcat or JBoss and lastly a JDBC connection to a local database such as Oracle or MySQL. You can also opt for another layer such as Hibernate which is used to abstract "Objects" with relational mapping.

As some would say: "You can do all that via a .PHP page". But remember that with Java, since there are tiers... you can actually deploy the solution across multiple servers. I'm not a Java Architect but I am familiar with some of the principles. The idea is that the WEB server lies somewhere in the DMZ (Demilitarize Zone) and serves all of the Java pages to browsers, inside the Firewall the Application server host the solution which can be split into several App Servers for faster processing (Scalability) and lastly the database is usually installed on a separate server even further within the firewall. It too can be made to work in tandem to ensure high-availability.

That's why JAVA-based online solutions are HIGHLY-SCALABLE. Where as .PHP files can only run on another server (I believe multiple hosts). The Architecture of .PHP is coupled (from my understanding). Sure I guess you can define custom "objects" in .PHP files, but you are still tying the logic and UI together (fundamentally).

Something along those lines...

questccg
questccg's picture
Offline
Joined: 04/16/2011
Fundamentally

PHP is a "page-based" interpreted language.

JAVA is a "Multi-tiered server" solution.

The two are very different from each other FUNDAMENTALLY. Most high-end customers like Banks, Insurance Companies, online Stock Trading, etc. use a JAVA solution as their infrastructure needs are more important: example of high-availability for all tiers (redundancies at each tier) in the event that one server goes "down" there is a backup that is running to make sure transactions continue being processed.

This example clearly shows the difference between JAVA and PHP.

PHP is used in the online world for development of websites (custom) or with "frameworks" built on-top of PHP. I'm not sufficiently experienced with PHP to know IF it can be "redundant" or if you can have multiple instances... BUT one thing is for certain: all the GUI and PHP code run on ONE (1) server. If that server is unavailable ... I don't think PHP was Architecturally designed to run on more than one (1) server. I could be wrong - but from what I am seeing is memcache to share multiple sessions on several servers... Sounds a bit like a "manual" solution to handling more web connections. Not a scalable "infrastructure"...

questccg
questccg's picture
Offline
Joined: 04/16/2011
What to EXPLORE???

I would suggest Googling and maybe searching for some ONLINE "FREE" courses of "UNITY" (www.unity3d.com)! Unity is very powerful and was designed for making games. It could be 2D game with a Map or a 3D Shooter like Quake (sorry my knowledge of recent games is rather limited).

Unity also can run on a cellular phone ... so you can code mobile apps for your phone... You'd have to check out their tools. Because it's quite different than plain coding I believe.

And of course I know Hamish (Pocket Sports) has his Pocket Sports Basketball mobile game made with Unity too... And it's a screen with rolling dice (3d). So combination of 3d and 2d makes the game come to life.

If you know programming basics - and want to design a mobile game, I think Unity is the proper platform for it.

I'd check it out...!

questccg
questccg's picture
Offline
Joined: 04/16/2011
And in case you wonder...

Blizzard's "Hearthstone: Heroes of Warcraft" was developed using Unity too. It may be a little dated (2014)... But still if Blizzard used it back then when the platform was relatively *NEW* and not known to many people...

Well then think how the platform has matured over the years (2014 to present)...

And in the event that you are designing something "card-wise" ... well "Hearthstone" is perhaps the best example of how to use a platform to it's up most!

pelle
pelle's picture
Offline
Joined: 08/11/2008
Godot

Godot is a nice free alternative to Unity.

Pretty sure you can load-balance PHP over multiple servers. Never really used it myself, but I see it all the time on various web sites and I can't believe it does not scale quite well. Facebook for instance uses PHP I believe (a quick google search confirms it).

But as already said, PHP is typically just a page-based thing. Not always, but I usually see it used for simple one-off just a single page that does a bit of work and shows some information to the user. It can be used to do big multi-tier things as well, but I never heard anything good said about that.

Have years of experience working full-time with Java, JSP, servlets, Spring etc on medium to large projects. It is a horribly over-designed and heavy eco-system, and the only reason I can imagine to use it is if some big company pays you good for it because some big boss has decided for non-technical reasons the project must use Java. Java is mainly good because it is easy to hire Java developers. As for the language and frameworks they are not very fun. Expect to spend most time digging through xml-files and implementing abstract classes. Layers of boilerplate. It is all very enterprisey.

I would use one of the popular python or javascript/node frameworks. There are some with very strong communities and they can be used without heaps of boilerplate. Just google to find what is the most popular ones at the moment. Easy to find cloud services to host those apps if you go beyond prototyping and want to actually deploy it for real.

Seriously off-topic though. :)

questccg
questccg's picture
Offline
Joined: 04/16/2011
Godot who?

pelle wrote:
Godot is a nice free alternative to Unity.

Hmm... when you say "alternative", are you suggesting Godot has the same feature set. Or are you saying because it's FREE take a look at what it can do? Because I doubt it can do "everything" Unity is capable of doing. Just about "everyone" has hear of Unity. Godot - never heard of...

pelle wrote:
Seriously off-topic though. :)

I think by proposing game engines is getting the thread back on topic.

It would be a waste of time trying to connect PHP with JAVA. It looks like they have something called Java Bridge that allows you to call "Objects" I guess from the application tier and use PHP for front end UI stuff.

But if you want to code a game, you need a "Game Engine" (like Unity or other...)

questccg
questccg's picture
Offline
Joined: 04/16/2011
I found this...

Free Unity3d Course

  • Getting Started with Everything
  • Introduction to Unity 3D Course
  • Unity Course Syllabus
  • Unity Course Application, Tools, UI, Workflow (Videos 1 - 60)
  • Unity Course Exam 1 – Unity Tools and Application
  • Unity Course Hotkey Chart
  • Unity Course Exam 2 – Unity Hotkeys
  • Unity Course JavaScript (Video 1 - 15)
  • Unity Course Exam 3 – Unity JavaScript Part 1
  • Unity Course JavaScript Continued (Videos 16 - 26)
  • Unity Course Exam 4 – Unity JavaScript Part 2
  • Unity Course Lab 1 - Point and Click
  • Unity Course Lab 1 - Presentation
  • Unity Course Lab 2 - 2D Space Shooter
  • Unity Course Lab 2 - Presentation
  • Unity Course Lab 3 - Tool Development and Workflow
  • Unity Course Lab 3 - Tool Presentation
  • Unity Course Lab 4 - 2D Mario Clone (Side Scroller)
  • Unity Course Lab 4 - Presentation
  • Unity Course Lab 5 - 3D Mario Clone (3rd Person Adventure)
  • Unity Course Lab 5 - Presentation
  • Unity Course Completion and Submission Guidelines For WBS Training Certification

Seems like quite the course ... and it's FREE too.

FrankM
Offline
Joined: 01/27/2017
A little overpowered for this application

My take was that larienna was talking about a prototyping tool, or at best a referee app to allow a more sophisticated AI than would be typical for a board game... but not to make a fully-mediated videogame experience with something like the Unity engine.

I had suggested using a tiered architecture so that the game engine could be distinct from the rendering engine (even really simple rendering like text and static images can get oddly complicated when considering a broad array of viewing devices). The Java system might be the way to go even if most of the containers end up being virtually empty, though it may be possible to get clean separation with a simpler tool.

Simpler tools?

pelle wrote:
I would use one of the popular python or javascript/node frameworks. There are some with very strong communities and they can be used without heaps of boilerplate. Just google to find what is the most popular ones at the moment. Easy to find cloud services to host those apps if you go beyond prototyping and want to actually deploy it for real.

pelle
pelle's picture
Offline
Joined: 08/11/2008
questccg wrote:pelle

questccg wrote:
pelle wrote:
Godot is a nice free alternative to Unity.

Hmm... when you say "alternative", are you suggesting Godot has the same feature set. Or are you saying because it's FREE take a look at what it can do? Because I doubt it can do "everything" Unity is capable of doing. Just about "everyone" has hear of Unity. Godot - never heard of...

Godot seems to be gaining popularity and I see it mentioned increasingly on gamedev forums. It used to be an in-house engine used by a few small studios, then they open sourced it just a few years ago. I can't personally compare vs Unity, but I hear there are pros and cons to both. Godot is still behind on 3D, but possibly a bit ahead on 2D.

It would be a waste of time trying to connect PHP with JAVA. It looks like they have something called Java Bridge that allows you to call "Objects" I guess from the application tier and use PHP for front end UI stuff.[/quota]</p> <p>Java, not JAVA. :) You normally do not have to have direct connections like that because there are all sorts of internet protocols made up to let one server talk to another, independent of languages. But pretty sure PHP can do everything from the UI to database on its own anyway.</p> <p>[quote wrote:
But if you want to code a game, you need a "Game Engine" (like Unity or other...)

This, or something like plain old HTML with a bit of client-side javascript. Both those methods will let you just use some images and text and move them around very easily.

questccg
questccg's picture
Offline
Joined: 04/16/2011
Godot and Unity

pelle wrote:
...Godot seems to be gaining popularity and I see it mentioned increasingly on gamedev forums. It used to be an in-house engine used by a few small studios, then they open sourced it just a few years ago. I can't personally compare vs Unity, but I hear there are pros and cons to both. Godot is still behind on 3D, but possibly a bit ahead on 2D.

Oh so they released it after developing it for their own games... Makes sense. I'm surprised they haven't tried monetizing it a little. Well I guess they've made their money using it for their own games. But games are also free nowadays... In any case they developed for their own needs.

pelle wrote:
This, or something like plain old HTML with a bit of client-side javascript. Both those methods will let you just use some images and text and move them around very easily.

Web interfaces are very WEAK in terms of presentation. I think that the use of FLASH might be better than pure HTML... unless you want your interface to look real "basic". I've used Flash on my own website ... and it's pretty cool (http://www.questccg.com/demo.htm or http://www.questccg.com/preview.htm) ... I've also enabled Flash to interact with a HTML page, you can get messages back and forth to "react" to clicks outside the Flash embedded content.

DHTML (or maybe that's now called HTML5) allows you to move layers around too ... But it's not the same. I think you would land up with a lot of Javascript (as you suggested). I don't see this being used as the necessary components to make a "Game". But you're welcome to try it...

Update: You also need to consider that there are a LOT of tutorials and examples of using Flash too. Whole games made in Flash too...

Personally if I had to choose out of all the options (DHTML, Flash, Java, PHP, Godot, Unity, etc.) if I was making a game... I would choose to learn Unity. It even has it's own JavaScript language too (and I believe you can also use C# - I think). That's if I was making a GAME.

If I had to design and implement a web-interface, I would probably choose PHP.

If Unity is anything similar to Flash, well the GUI should be strong enough to handle basic animations and add "scripting" to do thing to layers. That's how Flash works. My guess Unity with it's toolset must be somewhat similar... People don't have a tendency of re-inventing the wheel. Just improving upon someone else's implementation/design.

pelle
pelle's picture
Offline
Joined: 08/11/2008
Flash vs HTML? That was last

Flash vs HTML? That was last decade's debate. Open standards won and Flash is almost gone now. My web browser warns me when I click your links because the pages contains plugins (potential security risks) and I need to click through two such warnings before the plugin is allowed to load. That is the default behavior in most browsers now, for those that still support flash at all, and the trend is towards not supporting it. Does your game preview work well on many phone browsers? Tablets? You do know that phones and tablets have overtaken desktop browsers in usage? Flash is going the way of Silverlight and Java applets, like it or not.

But YES, anyone looking into making some kind of game definitely should check out Unity and various other similar options. Lot of point-and-click and being able to configure animations and layout without much actual programming. Even for most advanced users that is the way to go, and to make a quick prototype that is probably a lot less work than to do a command-line tool with stdin/stdout stuff, because those game engines are literally made to make games, and full of pre-made things to make your life easier.

Quote:
Oh so they released it after developing it for their own games... Makes sense. I'm surprised they haven't tried monetizing it a little.

Because by publishing the code on github and inviting others in they have attracted some 100 contributors adding new features and fixing bugs for them. They have attracted enough fans to get Patreon funding to have one or more persons now working full-time on the game engine (presumably allowing them to make better games). They are monetizing indirectly by having a better game engine, one that they still have control over and make all the decisions for, but that others also get involved in developing. It is games they make money from, not selling game engines. Many other companies do that as well for tools they depend on but that are outside of their primary business.

In a way I guess that is why many open source projects happen. I do not try to monetize my tools for making countersheets/cardsheets/hexgrids (or my gamebook tools) because there would be little money in it, require a lot of time I rather spend on other things. By giving them away I get plenty of great feedback and now and then some other programmer fixes my bugs or adds features. The goal is for me to use the tools to make better games and prototypes (and make them much faster), and giving away the source code has only been a good thing. I could try to sell them instead, make a few $s, but miss out on all the benefits, and every one of those tools would be in a worse state now, and would be less useful to me for making my own games.

questccg
questccg's picture
Offline
Joined: 04/16/2011
Wow ... what a surprise!

pelle wrote:
Flash vs HTML? That was last decade's debate. Open standards won and Flash is almost gone now.

It's true ... less Flash on websites nowadays. I noticed that trend... but wasn't sure if there was a definite reason for it.

pelle wrote:
My web browser warns me when I click your links because the pages contains plugins (potential security risks) and I need to click through two such warnings before the plugin is allowed to load. That is the default behavior in most browsers now, for those that still support flash at all, and the trend is towards not supporting it. Does your game preview work well on many phone browsers? Tablets? You do know that phones and tablets have overtaken desktop browsers in usage? Flash is going the way of Silverlight and Java applets, like it or not.

Didn't know that Flash a tech is on it's way out... But thanks for pointing that out!

Update: Yeah it seems like Flash has been on the outs since 2010 wow. Even Adobe saw it as a security risk...

@Pelle: thanks for the news... HTML5 looks to be the winner!

Quote:
But YES, anyone looking into making some kind of game definitely should check out Unity and various other similar options. Lot of point-and-click and being able to configure animations and layout without much actual programming. Even for most advanced users that is the way to go, and to make a quick prototype that is probably a lot less work than to do a command-line tool with stdin/stdout stuff, because those game engines are literally made to make games, and full of pre-made things to make your life easier.

Yeah it's just a bit "daunting" at the start. Feel like you're trying to "cross an ocean" in a tiny lifeboat. But if you can find some nice tutorials and some free videos (explanations or courses), it can make the task much more achievable. Same was for Flash, I followed the tutorials they gave me and then made my own "animated" content.

The one thing I don't know is the Godot vs. Unity community. Who has the most involved people. Because aside from a ton of tutorials, having a place where you can post Questions is essential (just like BGDF! LOL) Anyways I'm not saying Unity is better than Godot - I can't compare the two. I'm just saying aside from FREE, you also need to factor in the community too...

Syndicate content


forum | by Dr. Radut