Skip to Content

What scares you from learning computer programming

47 replies [Last post]
questccg
questccg's picture
Offline
Joined: 04/16/2011
All technology comes with limitations

pelle wrote:
I think we all got a bit too far here discussing implementation details. It is easy to fall into that trap. Remember that the goal is always to keep as many doors as possible open for as long as possible. Do not decide on what framework or language to use for the gui until you really must. The same for deciding what/if to use a database or game engine.

The problem with this IDEALISTIC vision - is that you can put together flow diagrams and sequence diagrams about how the "design" is supposed to work - but it's all WORTHLESS until you actually make decisions on what to use. Why? Because in technology it's all about the "bell curve". Early Adopters vs. Late Adopters. And technology is a bit "touchy" like that. You may use a older, more mature 3D/2D library that's been around for 5 years. Or you may use a newer database that been around for a couple of years, etc. It's all those choices that will ultimately "restrict" how your "design" will operate. The real struggles are in the details of learning and knowing how to integrate each piece.

I understand you want to restrict your game to certain frameworks... Like you might not want TinyDB because it's a file-based database but doesn't have indexes (which mean slower transaction queries - but it doesn't have SQL). So if your plan is to design "SQL Scripts" ... well you can't use TinyDB... There are always restrictions to technologies.

Things like that. When I personally approach a project - I figure out how the architecture is supposed to work. If I don't want a multi-tiered environment with several servers - well then I would choose a language that is more "coupled" but simpler to use.

But I'm sure you already know WHICH components your "design" will work with. And that in one way is smart - because you work around LIMITATIONS.

Cheers.

gxnpt
Offline
Joined: 12/22/2015
technologies

Currently I use PHP and SQL and Javascript and HTML (I got distracted from learning C++ and Java and used to do back-end web development). Using those makes it suited for localhost and LAN and web with no player download needed as a pure server/browser game.

Ex:

The Singularity Trap is limited in graphic quality due to size of board, needing to crowd a planet and owner marker and allow for 9 player/status markers in every hex while leaving room for a number to also show, and the current minimal 1280x720 laptop screen resolution.

So, limited pixels to put entire board on screen at the same time (you still want a minimum 10 inch screen so no cellphones or small tablets due to tiny size) makes the fleet tokens just colored pushpins.

I was doing no animation, a form type player input, and a "process simultaneous actions and present new resultant image and information" computing process. I could have skipped the SQL and used flat files and I actually do that for a couple of things.

And I did it totally bass-ackwards by writing sections of script as I developed the rules for that section instead of first having game rules developed and then putting it in code. I do not recommend that, by the way, I can just get away with doing it myself for small projects like that one.

----

On the other hand, when I made a Vassal module for Alchelemental I already had the game in PnP form and looked over free game engines for one that was easy enough to learn the bits I needed to use.

So, based on the game, is the media/language capable of doing it? Are you capable of learning that language?

That is all that matters. No different from trying to take a digital game to physical and figuring out if components are available to handle things (like needing little stacks of sauce cups to eliminate computer paperwork, or a dial or polyhedral dice or a player mat).

If trying to make a new game engine, you would do it as a set of black boxes and then do the internal workings of the boxes. Designers would build with the boxes and inputs/outputs from boxes.
(Oh my stars and garters - methinks programming objects have just been described in electronics terms)

Whatever media you work in there are limitations. Ask an artist (painter) about oil vs watercolor vs colored sketch pencils.

A programming language or a game engine is really no different from "how can cards work and what can I do with them in a game". Some people just react poorly to technical labels and retreat instead of looking to see what hides behind the fancy words. Like I do when something involves going outside in the weather.

ssm
ssm's picture
Offline
Joined: 04/06/2017
Didn't read through all the

Didn't read through all the responses.
Don't do it in java. Use python or something more useful down the road.

larienna
larienna's picture
Offline
Joined: 07/28/2008
Quote:It is A LOT of work,

Quote:
It is A LOT of work, not only to write the base code, also the design. The effort doesnt make sense, to me, to make it... I have many better things, and far more interesting, to do with my time.

Well, many years ago, I started doing board game design because I thought it would be easier and faster than programming a game. But I realised that it takes me more time to design a board game than design and program a video game.

And it's also more fun to design and program a video game than design a board game. It seems that the mechanics research, prototyping and playtesting that must be done in board games are boring to me. While playtesting video games are fun.

Quote:
I understand you want to restrict your game to certain frameworks... Like you might not want TinyDB because it's a file-based database but doesn't have indexes

If you want to use TinyDB, no problem. Make a driver for it and you are ready to go. I had an idea recently for a real-time strategy game and was wondering if I could use the engine explained in this thread since it was real-time. One issue was if I was going to use a database during the game, or simply use pojo objects while playing and save the game in a DB. Or if I could load fixed data from a CSV or JSON file, it's all possible as long as there is a driver for it.

Quote:
A programming language or a game engine is really no different from "how can cards work and what can I do with them in a game"

Yes, it is very different. There is no restriction of time and space, which prevent the need of abstracting your game. In board game design, you constantly need to compress and abstract your mechanics to make them fit into pieces, or make the game playable in reasonable amount of time.

Quote:
Don't do it in java. Use python or something more useful down the road.

Can't, python is not optimised for video games (too slow), I want to eventually deploy on android which requires Java, LibGDX is also coded in java. There could be multiple front ends, but for android development, Java is a necessity.

Maybe it could be possible to create a module that allows loading Python or Lua script for the game logic. But the core of the library must be in Java.

FrankM
Offline
Joined: 01/27/2017
larienna wrote:Maybe it could

larienna wrote:
Maybe it could be possible to create a module that allows loading Python or Lua script for the game logic. But the core of the library must be in Java.

I've seen a game front-end that allowed Lua and Ruby for scripting, though the only decision process I can think of that would result in those two choices involves a random number generator.

Corsaire
Corsaire's picture
Offline
Joined: 06/27/2013
I think the point of a

I think the point of a lighter secondary language is for a goal of attracting board game developers to use the framework which would be less approachable with a heavier language.

With a great design model, many core features of a board game AI would be abstracted in the initial implementation anyhow. If I were writing my own AI, I'd expose tuning variables and feature mapping anyhow so that I could easily turn game iterations and test AI and share the same code base for various levels of ai difficulty.

It might an interesting exercise to work through what the broadest set of heuristics would be with other board game designers. Thinking about player strategies and how they conceptualize their game play can enrich the design process and avoid problems like narrow optimal strategies that may only come out late inplaytesting.

FrankM
Offline
Joined: 01/27/2017
Zillions of Games

The closest thing I know of to this concept is Zillions of Games which is supposed to have a generic board game AI under the hood. It uses its own homebrew game definition language.

I looked at it briefly, but the game I was trying to prototype is in a class that the AI plays particularly poorly... games where pieces change capabilities during play. So yes, it apparently sucks at checkers.

An AI that could anticipate future game states including different piece states would be a big deal. That would even loop in tabletop war games.

larienna
larienna's picture
Offline
Joined: 07/28/2008
Ai is a different problem. In

Ai is a different problem. In fact there is a lot of AI mechanism I want to test but in order to do so, I need to have a game first. And the library explained in this thread could allow to make game fast to develop AI for it or allow desiging AI for board games I have.

Still, unless I find a way to stadardise the AI process, I doubt I could make a generic AI or a 1 button push AI. But again, I have not made enough R&D on AI to actually know. I first need working games ( complete video games, or board games assistant).There are common AI mechanism like Neural Networks, Fuzzy Logic, Genetic Algorithm, etc. But I don't think you could simply use those mechanism without hardwiring them together.

Squinshee
Squinshee's picture
Offline
Joined: 10/17/2012
I started designing board

I started designing board games because I didn't know how to program. Now that I know how, it's hard for me to even consider working on my tabletop ideas because of how slow and time consuming the iterative process is.

For those that are intimidated by coding, I urge you to find a video lecture course online. It's pretty crazy the number of things you can accomplish with a basic understanding of conditional statements, loops, arrays, and methods. Start with a high level language like C#, Java, or even Python (I don't recommend starting with C/C++).

And Unity is really fun to futz around with once you have your bearings :)

larienna
larienna's picture
Offline
Joined: 07/28/2008
Quote:I started designing

Quote:
I started designing board games because I didn't know how to program. Now that I know how, it's hard for me to even consider working on my tabletop ideas because of how slow and time consuming the iterative process is.

Wow! It's fun to see someone who seems to have the same experience that I did.

Quote:
For those that are intimidated by coding, I urge you to find a video lecture course online.

Well if the tutorials are too much intimidating, that is something I could actually do as I love teaching. It's just a matter of spending time. I was writting this tread because I was still considering if it was worth the investment since there are so many free documentation online plus there are tons of books out there.

I would only do such tutorial if I could bring something that is missing in all those other tutorials. Maybe a different approach using slower progress with many excercice and examples.

I also recommend Java and Python for learning programming. For a more visual approach (windows and buttons), visual basic could do, but it has been a while since I coded in VB, not sure the language still exists.

pelle
pelle's picture
Offline
Joined: 08/11/2008
For games instead of vb we

For games instead of vb we have environments like unity and godot.

Pretty sure vb is still around, but there are also multi-platform visual tools like qt (they have their own javascript language nowadays, so no need for c++ if you want to avoid it). But for games I would definitely just use something made for games or code from scratch, not build on top of some more generic framework that was not made primarily for games.

But again, keep an open mind and make most of the game first, worry about details like the gui later.

FrankM
Offline
Joined: 01/27/2017
Compartmentalizing

I think your initial intuition to flesh out the game definition language is spot on.

The GUI can be a stdin/stdout stub.
The AI can be a random movement stub.
The database can be an off-the-shelf API.

But there is nothing to exercise and develop against unless there is a fairly general way to define a game. Though coding custom functions in Java or Lua or Prolog or whatever is something to plan for from the beginning, I'm not sure its an essential feature for a first version.

larienna
larienna's picture
Offline
Joined: 07/28/2008
About visual basic Many years

About visual basic

Many years ago, I made a video game (unfinished) in VB and could get something pretty cool. There are some limitation, like forget about realtime stuff And you are stuck with the standard widget.

Here is the link of the dead project

http://ha.lariennalibrary.com/index.php?n=VideoGame.VideoGame-Overlord-2

It's inspired on a NES game called Overlord (a remake of the PC game suppremacy). I intend to eventually redesign the game but as a real time strategy game like the original game was.

Masacroso
Masacroso's picture
Offline
Joined: 05/05/2014
larienna wrote:Quote:It is A

larienna wrote:
Quote:
It is A LOT of work, not only to write the base code, also the design. The effort doesnt make sense, to me, to make it... I have many better things, and far more interesting, to do with my time.

Well, many years ago, I started doing board game design because I thought it would be easier and faster than programming a game. But I realised that it takes me more time to design a board game than design and program a video game.

And it's also more fun to design and program a video game than design a board game. It seems that the mechanics research, prototyping and playtesting that must be done in board games are boring to me. While playtesting video games are fun.

Well, this doesnt apply to me. I can design a board game in no more than 3 days, maybe a week. My games tends to be simple, I dont like complexity so much.

My liking by board game design comes from curiosity and mathematical model more than play games.

And I dont like so much video-games or programming so I think this question depends about what someone really like to do. This is why I said that I have a lot of things better to do in my spare time than program a videogame (indeed I have a lot better things to do that design board games too!)

People tends to do what they like to do.

questccg
questccg's picture
Offline
Joined: 04/16/2011
I too prefer Tabletop Designing

As a Software Engineer, there are some types of solutions that I would willingly program. Games is not one of them. I've tried designing a 3D "Tank Wars" all the way back to my university years. What I managed to do is an amazing "Terrain generator" which was only PART of the game. I've seen from friends other people who designed "platformers" in 2D which were cool -- but I never understood how they did it.

And while I know several languages, have programmed for 20+ years -- I'll still be the first one to say: "I have no clue how GAMES are programmed."

Much like @Masacroso, I prefer pondering "physical elements" to my designs. Sure I've had the idea for a couple good video games too... But I prefer to design in the realm of physical components. I also really enjoy "card games" and so it should be no surprise that I often design games with cards.

I think physical Card Games (real games) are more tangible and I prefer physical copies over digital ones...

Cheers!

larienna
larienna's picture
Offline
Joined: 07/28/2008
Quote:My liking by board game

Quote:
My liking by board game design comes from curiosity and mathematical model more than play games.

Many years ago, I decided to switched to board game design to avoid programming, and because I wanted to design a lot of turn based strategy (TBS) games. I thought that TBS and board games were actually the same and that it would actually be faster to design a BG since there is no coding. But I was wrong. And one of the set back is because I suck at mathematical modeling. I am more a concrete type of person.

Quote:
I've tried designing a 3D "Tank Wars" all the way back to my university years.

Hey, speaking of school project. If you have a C compiler, SDL and GIT, you can try my school game project I just finished (got 100%). It's called Donut Bob, you need to collect donuts in a specific order of colors. The game is pretty though.

https://gitlab.com/nicolaslambert_2/inf3135-aut2017-tp3

The readme is in french, but the game is in english. Ok, there is like at most 10 lines of text in the whole program.

Quote:
And while I know several languages, have programmed for 20+ years -- I'll still be the first one to say: "I have no clue how GAMES are programmed."

Yes, VG programming is another world, All my life, I put all my learning into VG programming, so I know more about it. Still, my objective is that once those front ends would be designed, you will not need to actually know how to do it, you just need to code the game logic. Even in LibGDX, they do a lot to remove the burden off the programmer compared to SDL, which was used in the game above, that simply does nothing for you. It's just a huge Video-Audio driver.

Anyways, when I'll have something more solid, I will post it on this forum. I might have more free time this spring since an unexpected event force me to cancel a class.

FrankM
Offline
Joined: 01/27/2017
SDL

larienna wrote:
SDL, which was used in the game above, that simply does nothing for you. It's just a huge Video-Audio driver.

SDL was used as the entry point in that Lua-and-Ruby front end I mentioned above. It's a closed-source game, but modders with way too much time on their hands made a custom version of SDL that allowed mods to directly access game memory and do a lot more than fiddle with configuration files and graphics.

I think that planning for modding from the outset (in your case, custom functions) is a better idea.

Syndicate content


forum | by Dr. Radut