Advertisement

So... I'm a Molecular Biologist....

Started by July 03, 2014 09:54 PM
19 comments, last by valrus 10 years, 4 months ago


What I'm trying to be able to do is communicate what I want to a programmer using the correct terminology. [...] I figure I would try to get the game coded in C++ and for mobile devices,
Hm... So you're basically saying, you want a programmer to code up your game idea?

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

As for other games: Probably off, but look for Atomix: http://en.wikipedia.org/wiki/Atomix_(video_game)

It's basically a tile based puzzle game where you assemble molecules.

Fruny: Ftagn! Ia! Ia! std::time_put_byname! Mglui naflftagn std::codecvt eY'ha-nthlei!,char,mbstate_t>

Advertisement

Some introductory stuff you will want to keep in mind when trying to plan this out:

http://www.sitepoint.com/12-tips-for-better-developer-communication/

http://www.smashingmagazine.com/2009/08/14/how-to-effectively-communicate-with-developers/

http://www.informit.com/articles/article.aspx?p=2044336

You don't necessarily need programmers to understand your domain completely. It does help a ton, but if you can communicate the specific needs properly you can pretty much have anything made. It's probably not going to be easy, but you are an educator!

Just be aware that if you don't intend to design the game yourself, then you will need a programmer with some heavy experience. Actually, I think it's best if you just design it as best you can, and test it yourself as the project goes on. Through the project you will have opportunities to see what things look like, and later how they work. If you can afford it, you may be able to get something that is decidedly better than what you had originally envisioned.

I've worked on projects with educators before, and they always had a positive presence in the development process. It made things easier because we could discuss the complex domain-specific parts of the projects face-to-face, as well as have some user-testing. In my case the project was made FOR the educator though. The educators would come by weekly to check on progress and explain differences in what we understood and what they really meant. It's all part of the process, so don't be too discouraged if you feel you aren't understood properly.

Anyways, good luck with your project. And keep in mind that $$$ makes things happen.


I figure I would try to get the game coded in C++ and for mobile devices, but I want it to be as cross platform compatible as possible and the code to be as open source as possible. I'm not sure what my options are in that regard.

I'm also not sure what my options are in regards to actually coding the information. I guess they can be math based or rule based (if/then type stuff)? Is there any other way to encode the information?

I understand that there is underlying game mechanics and then there is a user interface on top of that (generally), but I am unsure how to say that in technical terms and what my options are in that regard.

Pink Horror is right. Unless there's another technical requirement, the language shouldn't concern you. "Open source" just means sharing your source code so that doesn't limit your options at all. Cross-platform makes things a bit tougher, but you aren't restricted to just C++. That may have been true at one time, but languages, engines, and frameworks have come a long way. C# and Unity are still a good choice. Heck, you could even do it in GameMaker technically.

And Kaptein is correct too. Being the non-programmer idea guy, you don't have to be too technical with your requirements. Professional programmers frequently interact with non-technical people and work together to figure out exactly what the client is asking for. You're already starting to talk to us through forums and we're starting to get an idea of what you want. If this were an in-person discussion with a whiteboard, we'd be able to start roughing out some general ideas.

If you want to start figuring out the game mechanics, you can start on this yourself with no technical skill whatsoever. Cut out some construction paper shapes for your molecules and move them around, or use blocks, or some other kind of manipulative. Figure out "what" you want the user to do and this will be the game's mechanics. Since you are the SME (Subject Matter Expert) you'd be in charge of that with guidance from the programmer. Figuring out "how" to allow the user to do this will be the user interface, and will be both your responsibilities. Figuring out the low level details of the specifics of the coding is the programmer's responsibility.

Re: Encoding the information - It sounds like data-driving (detailing out specifics via data files) the game mechanics is what you're asking about and it should be doable. It adds some up-front complexity to the task, but I find that doing so usually opens up so many more possibilities. It makes your game "mod-able" (able to be modified by the end user) and sometimes in ways the original programmer never even thought about.

I have to cut this short since I have plans this Sat. Sounds like an interesting project. :)


Honestly, as a programmer, one thing that somewhat bothers me is when someone who does not know what he or she is doing with software still wants to make all the high level technical decisions, and then force the actual programmers doing the work to use the programming languages, libraries and tools of their choice, based on some light Internet research, instead of letting the people who may have actually written games in several different languages and environments decide which ones to use. But that's just me.

But that's just you...And me... And damn near every other developer... :)

- Eck

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG


What I'm trying to be able to do is communicate what I want to a programmer using the correct terminology.

Okay. Moving this to Production/Management.

-- Tom Sloper -- sloperama.com

Kseh, thank you for your comments. I came to this board because I wanted to talk to programmers so that I could start learning to talk to them with what would come across as a modicum of understanding. For instance, Eck gave me the term 'framework' which I had not heard before and am currently investigating.

Phase I: Is a game. The game itself would essentially be like The incredible machine, but with proteins instead of gears / levers etc. Within this context, I want a sandbox level where users can build their own 'biomachines'.

Phase II: Is a more technical tool that is essentially just the sandbox level with more options. These are probably two entirely different programs, but it would be nice if some of the coding produced for the first could be reused in the second and I'm trying to investigate the possibility. I would like this code to be accessable enough that, as science progresses, more advanced users could add more protein options to model current scientific understanding of molecular processes. I.e. there are over 4,000 DUFs (Domains of Unknown Function) out there, and it would be nice if there was a way for these to be added by future users. I was thinking something like a window within the program that would allow the user to access the code directly and input directions for the function of the protein. It would be nice for this to be doable without it being a complete cluster you know what to the code itself.



Pink Horror, thank you for your questions, I obviously didn't explain myself well enough:

"Why is it "C++ and mobile devices"? Does that mean you do not expect the mobile devices to use C++? Why do you care if the game is in C++, if you're not programming it?"

I am currently thinking it would be nice if it were in C++ because it is one of the most long standing languages. Right now a lot of scientific programs are in more obscure languages like FORTRAN, and I want to make sure this program doesn't fall into that category. I have spoken to some programmers about this, and I think it would be appropriate, because I would like the program to be cross-platform compatible eventually. It is not essential that it be in this language, it’s just one that has been recommended to me and it sounds like an intelligent suggestion. As I understand things, there are also several decent C++ converters that would allow programmers to move the program into web-based languages like Java.


"What do you think it means to be "as open source as possible"? Do you mean you want to make your source code public? Do you want to let volunteers contribute to your source code?"

I want future scientists / programmers to be able to add to it and reuse it in other programs. See the Phase II description.


"Honestly, as a programmer, one thing that somewhat bothers me is when someone who does not know what he or she is doing with software still wants to make all the high level technical decisions, and then force the actual programmers doing the work to use the programming languages, libraries and tools of their choice, based on some light Internet research, instead of letting the people who may have actually written games in several different languages and environments decide which ones to use. But that's just me."

I understand that concern and that is why I am trying to go beyond "light internet research" and have multiple discussions with programmers about what I'm interested in doing.



Endurion, thanks for the link!




Kaptein,

Thank you for the links. I believe the point in my design that I am at is something along these lines:

"Completeness
Completeness goes hand in hand with correctness. Have you found all those boundary cases? Have you considered what will happen in two years when your requirements change but this code is still in use? Have you thought about all those little details that seem to pop up later, or are you going to have to engage in a game of whack-a-bug to keep the system running? How complete is your conceptual coverage? Learn from those that have come before you, who have found the cracks and gaps, and found proper ways to avoid or fill them. By utilizing design patterns, other developers can have increased trust in your solution's completeness and correctness." - informit.com

I want to make sure I have considered all of my options and made an intelligent decision based on my needs. I want this program to be accessible and revisable by people who may not be the strongest of coders. Bioinformaticists are in relatively high demand right now, and many of my students cannot apply for these jobs because the job descriptions are for people who know both molecular biology and a relatively obscure language that is not taught within our CS B.S. programs. Hence my desire for it to be in something highly accessible to an entry-level coder that will last into the foreseeable future. I'm trying to get a few different opinions on what this might entail.



Eck,
"Re: Encoding the information - It sounds like data-driving (detailing out specifics via data files) the game mechanics is what you're asking about and it should be doable. It adds some up-front complexity to the task, but I find that doing so usually opens up so many more possibilities. It makes your game "mod-able" (able to be modified by the end user) and sometimes in ways the original programmer never even thought about."
Awesome comment, thank you. Would this necessitate a language like Perl, or could it be coordinated with C++? I've been discussing the development of course that taught Perl with my colleagues, and it sounds like Perl might be something that is more accessible to a general user than C++. Am I crazy to say that? Also, is the language itself perhaps why many bioinformatics programs are developed in FORTRAN? I understood that it was mostly for historical reasons, but I would appreciate alternative opinions on that thought.

Advertisement

On the subject of building machines, it might be worth your while to check out Factorio as well.

Eck,
"Re: Encoding the information - It sounds like data-driving (detailing out specifics via data files) the game mechanics is what you're asking about and it should be doable. It adds some up-front complexity to the task, but I find that doing so usually opens up so many more possibilities. It makes your game "mod-able" (able to be modified by the end user) and sometimes in ways the original programmer never even thought about."
Awesome comment, thank you. Would this necessitate a language like Perl, or could it be coordinated with C++? I've been discussing the development of course that taught Perl with my colleagues, and it sounds like Perl might be something that is more accessible to a general user than C++. Am I crazy to say that? Also, is the language itself perhaps why many bioinformatics programs are developed in FORTRAN? I understood that it was mostly for historical reasons, but I would appreciate alternative opinions on that thought.

Short answer: Perl's probably not the appropriate tool for this task. I'll spare you a long answer :)

But in any case, the other posters are right: these are decisions for your programmer, and they can't be made at this altitude. What you need to communicate with your programmer is a detailed game design document (GDD) that's specific about *everything* except implementation. (Look online for a tutorial if you don't know what goes in a GDD.) Don't worry whether each idea is possible; what you can describe in detail in text, a programmer can probably implement. And if there's something specific they can't implement, they'll point it out and suggest what can be implemented in its place.

Don't worry about knowing the programmer's lingo, but know the game designer's lingo. Read a few books on game design. You can (and should) get away from the programming details, but there will be important design decisions that will have to be yours, regardless of who else you hire.

Thank you all for your comments!

I guess I need to clear a few things up: I'm not planning on the initial version being complex, 3D or anything like that. Neither am I trying to code it myself.

What I'm trying to be able to do is communicate what I want to a programmer using the correct terminology.

I guess what I am looking for is a general survey of technical terms and what they are capable of doing, I.e. The pros and cons. Wikipedia is a little too tech speak heavy for me when I try to read about game engines and I'm getting overwhelmed with options.

I figure I would try to get the game coded in C++ and for mobile devices, but I want it to be as cross platform compatible as possible and the code to be as open source as possible. I'm not sure what my options are in that regard.

I'm also not sure what my options are in regards to actually coding the information. I guess they can be math based or rule based (if/then type stuff)? Is there any other way to encode the information?

I understand that there is underlying game mechanics and then there is a user interface on top of that (generally), but I am unsure how to say that in technical terms and what my options are in that regard.

Etc, etc.

If you get a decent programmer he will not want you to know the right names for things, he would just want you to be clear in describing what you want him to do. I personally rather hear a designer say ow I want this feature to work like this one in that game, because that means I am free in planning how to do this. When artists, designers or producers start to use buzz words, they are unable to actually convey what they would like me to create.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

First off, I just want to say that I appreciate everyone’s desire to spare me the effort of learning, however, for my own personal satisfaction and interest in the topic, I’m going to solidly ignore you. :) I can assure you that I am NOT the sort of person who would NOT take a programmer’s advice on his or her area of expertise.
Valrus, Thank you for your comments. When you say “Perl's probably not the appropriate tool for this task.” I guess that it’s because Perl is more of a language to “hold things together” is that correct?
Also, I appreciate your reference to a “game design document (GDD) that's specific about *everything* except implementation.” I will definitely keep this in mind. I’m on a slightly different point in the development of the project, basically the part where I beg for money, and the document that I am generating WILL have to demonstrate that I have some sort of competence in at least discussing these things. I.e. I will have to justify the creation of a library or engine. Its difficult to justify funds for a thing that you can’t describe in technical terms. XD
Do you recommend any books on game design in particular? I’m currently in the middle of “Augmented Learning”, “Games Learning and Society” and a folder full of Educational Game Design primary research articles.
NightCreature83, you raise an interesting point! “If you get a decent programmer”… How can I tell if I’m talking to a competent programmer? Any advice?

Oh! and I just saw the reference to Factorio! Awesome, thanks.

Also, while I'm here, I'll throw out this question as well:

There have been studies on SEG that suggest that one weakness of the educational aspect of games is that students often do not critically reflect upon the actual educational part of the game. (Gee 2003) I'm very much interested in encouraging this type of reflection without interfering with gameplay, so I'm thinking that I will have "problem based" gameplay as the primary game, and then ENCOURAGE collaborative learning and critical reflection in a separate "section" of the game, if you will. My interest is in designing different avenues via which to encourage this transfer between gameplay and critical reflection and test which one is most effective. One common arena of self reflection is online message boards associated with the game. (One that has been well studied is Civilization's "War Academy" online message board based on discussing in game tactics.) So, on the basic level, I'm trying to figure out how I can encourage users to move back and forth between gameplay and a message board without destabilizing gameplay or making it feel like a textbook or classroom.

Any suggestions on an effective way to do this?

Also, what would a message board look like / be called if it were integrated into the game itself on a mobile device? I have seen this done in some mobile games, where you are in essentially linked into a 'chatroom' scenario with fellow game players, but the posts are often (necessarily) restricted in length. Has anyone seen this done especially effectively in any mobile game they have played?

Otherwise, I was thinking of simply linking the game to a traditional online message board like this one and encouraging cross-platform "gaming"... although in this instance, it would be... cross-platform collaborative learning? XD

This topic is closed to new replies.

Advertisement