Database & application creation inquiries

Yeah. You read right. This is for everything that doesn't have anything to do with Eva.

Moderators: Rebuild/OT Moderators, Board Staff

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

Database & application creation inquiries

  •      
  •      
  • Quote

Postby Reichu » Thu Feb 12, 2015 3:27 pm

Hi. Haven't been around much lately (overwhelmed with other shit and mostly playing video games and watching cartoons to maintain sanity), but a question came to my mind recently and I thought I might probe the minds of the user base here in case I could get some help.

Alright, so my boyfriend and I are playing this ludicrously information-dense video game (called Xenogears; you may have heard of it). It's my third time attempting to finish it and despite being spoiled as fuck about how the plot resolves I can barely keep track of everything. As such, I fear for my first-timer boyfriend, who can't even remember main characters' names. Regrettably, XG lacks an in-game database of any kind, let alone one that auto-updates depending on what you've discovered, which is a feature it could REALLY use.

The thought occurred to me that I might, for fun, attempt to create such a thing OUT of game, in application form (for phone or otherwise). My basic idea is that you would tell the app how far in the game you are (and can update this parameter at any time), and it will prepare a handy bunch of information reflecting only what you know up to that point, pertaining to the various aspects of the game's world (Characters, Organizations, Places, Technology, Timeline, etc.). I have an overall CONCEPTUAL idea of how this would be done, but TECHNICALLY? I have no idea where to start!

I assume that some amount of database coding knowledge is required, but beyond that I'm flabbergasted and don't even know what to look for. Attempting TO look for anything seems to reinforce the idea that I'm out of my league and should just give up, but I can't help but think this might be doable, if only I had some basic pointers.

I have no pretensions of ever completing such a database, mind, but any skills I'd learn attempting to make one seem like they would be quite useful. Any assistance that can be rendered is greatly appreciated in advance.

Catamari
Test Subject
Test Subject
User avatar
Age: 30
Posts: 2936
Joined: Dec 26, 2012
Location: Transsexual Transylvania
Gender: Male

  •      
  •      
  • Quote

Postby Catamari » Thu Feb 12, 2015 4:25 pm

I've never played Xenogears.

The first question would be about how the data is structured. If you could provide some kind of description of what would be stored in the database (however nebulous that description may be), we could begin to hammer out the details of the actual database's layout and function. The database would likely be the most complex part of the entire system, the rest would just be writing the interface to the database and mucking around a bit with the data before, ultimately, outputting it.

If you're interested in getting nitty gritty with relational databases, I would recommend learning generic SQL. It's the standard database language and is fairly universal. Individual database systems (MySQL, SQLite, and Postgres, for example) have slightly different subsets of SQL, but the core language it largely the same.

This sounds like it would be a fun project.
Avatar: Smile!
Official Sexpert of Dai-Ero-Dan
"I LOVE LADIES." - The Eva Monkey
"If I can't wipe my own ass, then it's time for me to go." - Guy Nacks
"[Catamari] Just advising you to check your privilege" - Bagheera
"Fuck you, Switzerland" - Archer

Ornette
Administrator
Administrator
User avatar
Age: 49
Posts: 11887
Joined: Dec 26, 2005
Location: Pittsburgh/New York City
Gender: Male
Contact:

  •      
  •      
  • Quote

Postby Ornette » Thu Feb 12, 2015 4:59 pm

You can start by maybe putting everything in a spreadsheet or something, that should help you get an idea of what columns you'll need and how you're going to want to order things to make it useful.

After that, at least with Android development, you can easily import that into SQLite which is built into Android and there's a handy built in API for it.

Mr. Tines
Administrator
Administrator
User avatar
Age: 66
Posts: 21376
Joined: Nov 23, 2004
Location: This sceptered isle.
Gender: Male
Contact:

  •      
  •      
  • Quote

Postby Mr. Tines » Thu Feb 12, 2015 5:07 pm

Whatever you do, start simple and work on up, rather than trying to do something gold-plated from day 1; and focus on the immediate pain points rather than the "what about...?" bits.

For "the simplest thing that could possibly work" the old-fashioned prosthetic memory of a jottings in a notebook; or a text file if it needs to be on a network. Next up is the spreadsheet -- that lets you enter data with some structure to it that can be got at with scripts.
Reminder: Play nicely <<>> My vanity publishing:- NGE|blog|Photos|retro-blog|Fanfics &c.|MAL|𝕏|🐸|🦣
Avatar: art deco Asuka

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

  •      
  •      
  • Quote

Postby Reichu » Thu Feb 12, 2015 5:17 pm

View Original PostCatamari wrote:I've never played Xenogears.

That's fine, it's not a requirement to help. :tongue:

If you could provide some kind of description of what would be stored in the database (however nebulous that description may be), we could begin to hammer out the details of the actual database's layout and function.

I'll give it a shot.

So the basic idea is to create a general encyclopedia/glossary kind of thing, where information on-display is gradually unlocked and updated for increasing values of "in game progression". The organization might be sort of like this:

SPOILER: Show
I. Characters
A. Bartholomew Fartima
[Desert pirate prince. Blah blah blah.]
B. Elhaym Van Houten
[Red-haired space Nazi. Blah blah blah.]
C. Fei Fong Wong
[Ponytailed amnesiac martial artist. Blah blah blah.]
D. Miang
[Bitch.]

II. Organizations
A. Ethos
[The Catholic Church.]
B. Gazel Ministry
[Seele.]
C. Gebler
[Imperial space Nazis.]

III. Places
A. Aveh
[Figaro reincarnated.]
B. Shevat
[A U.F.O.]
C. Solaris
[Space Berlin.]
D. Yggdrasil
[Strangely, a sand cruiser and not a tree.]

IV. Technology
A, B, C, D

V. Other
A, B, C, D

VI. Timeline

(Though it obviously wouldn't look like like in the final execution, the general concept is to have big headers that lead to various related listings which all have useful information and maybe a picture or two with them.)

The database that is displayed is intended to change depending on a parameter provided by the user: how far in the game they are. Some sort of menu would allow this to be selected and changed freely. User selects their last point of completion. Hence, if all you've done is watched the opening movie, you pick that.

- Ch.0 Opening Movie
- Ch.1 Lahan Village
- Ch.2 Mountain Village
- Ch.3 Fallen Shadows
- Ch.4 I still don't see a giant spaceship
etc.

There would also be provided a small and non-spoilery summary of that chapter's events (making it explicit where it ends), in a little box or something, so the user doesn't pick the wrong thing and accidentally infuse the database with forbidden revelations.

So I guess for this to work, there has to be some mechanism that can construct the database on the fly, and every... let's just call this project "Xenoglossary"... entry will have to have every aspect, down to its title, marked to signify when and how they are displayed with respect to the "chapter" parameter. So, if an Elvis character (there is no Elvis character) first appears in Ch.41, the basic entry for him must not appear until the user has selected "Ch.41" as their last point of completion. If we don't learn that Elvis has a dog named Muttley until Ch.50, that information cannot appear in Elvis' entry until the "Ch.50" parameter has been chosen. And so on.

Further, some entries will have to be renamed as one progresses, as "Mysterious Woman", "Masked Man", "Huge Fuck-Off Spacecraft", or "Xenomorphic Entity" acquire actual in-game appellations. Information that turned out to be wrong will have to be ameliorated or removed. Various other complications come to mind. I probably shouldn't think about such things now.

And I definitely shouldn't think about stuff like having multiple options for how names are displayed ("would you like that in official-but-rushed-localization, corrected, or hyper-corrected?").

If you're interested in getting nitty gritty with relational databases, I would recommend learning generic SQL. It's the standard database language and is fairly universal.

How would you recommend a person who is interested but vastly intimidated by anything code-y (and utterly clueless of the amount of effort hypothetically required of her before any "tangible results" are obtained) to progress in that direction?

Catamari
Test Subject
Test Subject
User avatar
Age: 30
Posts: 2936
Joined: Dec 26, 2012
Location: Transsexual Transylvania
Gender: Male

  •      
  •      
  • Quote

Postby Catamari » Thu Feb 12, 2015 6:21 pm

I'm having a little trouble understanding what you're imagining. Would it be possible for you to create a mockup? It doesn't have to be functional, of course, but something that we can use as a reference for more or less what you're envisioning. Something as simple as a series of pictures drawn up in MS Paint with explanations would help.

Are you thinking something along the lines of a choose your own adventure system? By that, I mean, you tell the system where are currently are, in the game, and it will output your next possible choices? Or are you envisioning something more like Wikipedia?

A more crude example would be something along the lines of this, for a Pokemon game. You would tell the system how many Gyms you have beaten, and the system will return the plot up to that point, as well as what Pokemon are available to you for capture and what items you have access to. Is this kind of what you are envisioning, but (obviously) tailored for Xenogears?

It is important to start small. I think the easiest starting platform would be similar to my Pokemon example.

The difficulty of implementing something like this scales more or less exponentially with the number of features you want to add. That's why it is so important to start on only core, most basic of features. What do you believe would be the most basic of features to add? By that, what you do think would be the features that would provide the most necessary information to the player? For example: creatures (and their stats) that you may encounter at a given point in the game, items you are able to buy. Something to that effect.

As for how you can get started with databases, I'm afraid the only real answer I can give you is "learn to program." Programming and databases are inextricably linked. To really be able to get anywhere with databases, you have to have an understanding of programming. After all, having the data there, but without any way to work with it is pointless. If you are interested in learning to program, I would highly recommend learning Python. I don't believe it to be the most well suited language for this project (PHP if you want a web application, or Java if you want Android), but Python will provide a solid foundation for learning other programming languages, not to mention, Python is dead simple but is amazingly useful and flexible. The neat thing about programming is that every language is very similar (ignoring monstrosities like Brainfuck or LISPplease don't kill me). It's like learning foreign languages, learning your first one is difficult, but your second language is easier, your third is easier than that, and so on. The important thing about learning to program is learning to think like the computer, and this is the hurtle that most newbie programmers have trouble jumping over. Programming generally requires that your brain change gears, because you have to walk through problems differently.

I don't want to scare you by saying this. There's nothing to be afraid of when it comes to programming. Like with everything, it takes time, energy, and effort. It's a wonderful skill to have and it will give you a new appreciation for your computer. I'd like to think I am a fairly competent programmer, but I've spent a good portion of ten years honing that skill. I have not personally used it, but I hear Code Academy is excellent.

I imagine that you use Windows. If so, install a copy of Python. From there, locate Python in your start menu and you should be presented with a command prompt. From there, just go with the tutorial. If you use Mac, no need to install Python, you probably already have it. Go to the search bar and search for "Terminal", run it and type "python" then hit enter. That's it, you're in the front end for Python.

EDIT:
I've thought about it a bit. I think the easiest solution, right now, would be to get your ideas on paper and determine what exactly you want. If you're familiar with Excel, try to set up a very simple Excel based system and you can go from there.
Avatar: Smile!
Official Sexpert of Dai-Ero-Dan
"I LOVE LADIES." - The Eva Monkey
"If I can't wipe my own ass, then it's time for me to go." - Guy Nacks
"[Catamari] Just advising you to check your privilege" - Bagheera
"Fuck you, Switzerland" - Archer

BiQ
Sahaquiel
Sahaquiel
User avatar
Age: 42
Posts: 649
Joined: Sep 02, 2010
Location: Finland

  •      
  •      
  • Quote

Postby BiQ » Thu Feb 12, 2015 7:22 pm

Question: Is the only input that determines what information is shown / hidden from user the choice how far the player is in game? I haven't played Xenogears, so I don't know how linear it is...
The art of being grown up, the dirty little secret nobody lets on about, is that it's all about getting comfortable with acting the part, and reaching that point where you stop giving a fuck, and do stuff that needs to be done, because it just needs doing, and ain't nobody else going to do it for you. -Mr. Tines

NemZ
Token Misanthrope
Token Misanthrope
User avatar
Posts: 15804
Joined: Jun 28, 2008
Location: St. Louis
Gender: Male

  •      
  •      
  • Quote

Postby NemZ » Thu Feb 12, 2015 8:17 pm

[url]http://xenosaga.wikia.com/wiki/Xenogears_Database[/url]

So basically this? :huh:
Rest In Peace ~ 1978 - 2017
"I'd consider myself a realist, alright? but in philosophical terms I'm what's called a pessimist. It means I'm bad at parties." - Rust Cohle
"Think of how stupid the average person is, and realize that half of 'em are stupider than that." - George Carlin
"The internet: It's like a training camp for never amounting to anything." - Oglaf
"I think internet message boards and the like are dangerous." - Anno

BiQ
Sahaquiel
Sahaquiel
User avatar
Age: 42
Posts: 649
Joined: Sep 02, 2010
Location: Finland

  •      
  •      
  • Quote

Postby BiQ » Fri Feb 13, 2015 12:25 pm

That, plus the feature of filtering / modifying the visible information according to the game progression?
The art of being grown up, the dirty little secret nobody lets on about, is that it's all about getting comfortable with acting the part, and reaching that point where you stop giving a fuck, and do stuff that needs to be done, because it just needs doing, and ain't nobody else going to do it for you. -Mr. Tines

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

  •      
  •      
  • Quote

Postby Reichu » Fri Feb 13, 2015 1:14 pm

View Original PostNemZ wrote:[url]http://xenosaga.wikia.com/wiki/Xenogears_Database[/url]

So basically this? :huh:

What BiQ said. Did you even read the OP, NemZ? :irked:

Catamari: I guess a crude mock-up would be the easiest way to illustrate what I want to do. Though if my only option is to start at stage zero learning a basic programming language, there's no real point in thinking about what I might be able to eventually do. If I set out to learn something like that, the mindset will have to of course be "I'm doing this FOR THE RAW JOY OF OVERCOMING MY INTIMIDATION AND LEARNING A VALUABLE AND PRACTICAL NEW SKILL, yee-haw!"

Thanks for the help! For the time being, I'll reduce my ambitions down to keeping notes during gameplay like I was doing already and at some point heading over to the library to grab some complete moron's guides to programming.

Catamari
Test Subject
Test Subject
User avatar
Age: 30
Posts: 2936
Joined: Dec 26, 2012
Location: Transsexual Transylvania
Gender: Male

  •      
  •      
  • Quote

Postby Catamari » Fri Feb 13, 2015 10:28 pm

View Original PostReichu wrote:Thanks for the help! For the time being, I'll reduce my ambitions down to keeping notes during gameplay like I was doing already and at some point heading over to the library to grab some complete moron's guides to programming.
I would definitely recommend giving Code Academy a shot. They're whole thing is about teaching non-programmers how to program. If you're looking for a good book, though, Python for Dummies is worth getting, I've got a copy of it.
Avatar: Smile!
Official Sexpert of Dai-Ero-Dan
"I LOVE LADIES." - The Eva Monkey
"If I can't wipe my own ass, then it's time for me to go." - Guy Nacks
"[Catamari] Just advising you to check your privilege" - Bagheera
"Fuck you, Switzerland" - Archer

NemZ
Token Misanthrope
Token Misanthrope
User avatar
Posts: 15804
Joined: Jun 28, 2008
Location: St. Louis
Gender: Male

  •      
  •      
  • Quote

Postby NemZ » Sat Feb 14, 2015 4:40 am

I did read it, yes. I was just pointing out the info is generally readily available. If you want to cut that up and link it to some sort of "xenogears CI" that makes sense.

Or do it as a webpage with variable text, like they do here with the 'scope' function.
Rest In Peace ~ 1978 - 2017
"I'd consider myself a realist, alright? but in philosophical terms I'm what's called a pessimist. It means I'm bad at parties." - Rust Cohle
"Think of how stupid the average person is, and realize that half of 'em are stupider than that." - George Carlin
"The internet: It's like a training camp for never amounting to anything." - Oglaf
"I think internet message boards and the like are dangerous." - Anno

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

  •      
  •      
  • Quote

Postby Reichu » Sat Feb 14, 2015 4:59 am

View Original PostNemZ wrote:I did read it, yes. I was just pointing out the info is generally readily available.

The information being readily available* is irrelevant, since I don't want my b.f. to encounter spoilers, which would invariably happen if he were to Google anything about the game. But mostly the idea popped into my head as something that I just wanted to know how to do, because I would certainly be able to think of many useful applications for whatever I would have to learn to create the thing I imagined. The Xenogears aspect is largely incidental, a frivolous motivator that could easily be replaced with another.

* Which isn't completely true, anyway, since there is some XG information that I've only located on dead webpages accessed through archive.org via links that lingered elsewhere. Not to mention some things I'm discovering for myself by checking the original Japanese text. But whatever.

Or do it as a webpage with variable text, like they do here with the 'scope' function.

That's actually very close to what I'm thinking! Thanks for the find! Only... what do I do with it? :chinscratch: (Considering web pages are ultimately code, as well, and code reduces me to imbecile levels.)

NemZ
Token Misanthrope
Token Misanthrope
User avatar
Posts: 15804
Joined: Jun 28, 2008
Location: St. Louis
Gender: Male

  •      
  •      
  • Quote

Postby NemZ » Sat Feb 14, 2015 5:24 am

* Which isn't completely true, anyway, since there is some XG information that I've only located on dead webpages accessed through archive.org via links that lingered elsewhere. Not to mention some things I'm discovering for myself by checking the original Japanese text. But whatever.


Or wade through the incredibly dense, painfully repetitive, and mostly pointless 'complete works' book.
Last edited by NemZ on Sat Feb 14, 2015 5:30 am, edited 1 time in total.
Rest In Peace ~ 1978 - 2017
"I'd consider myself a realist, alright? but in philosophical terms I'm what's called a pessimist. It means I'm bad at parties." - Rust Cohle
"Think of how stupid the average person is, and realize that half of 'em are stupider than that." - George Carlin
"The internet: It's like a training camp for never amounting to anything." - Oglaf
"I think internet message boards and the like are dangerous." - Anno

pwhodges
A Lilin in Wonderland
A Lilin in Wonderland
User avatar
Age: 77
Posts: 11035
Joined: Nov 18, 2012
Location: Oxford, UK
Contact:

  •      
  •      
  • Quote

Postby pwhodges » Sat Feb 14, 2015 5:30 am

View Original PostReichu wrote:code reduces me to imbecile levels.

I still feel like that sometimes after decades of programming. It's just a matter of getting sufficiently familiar with the idioms of whatever language you are working with, and being tolerant of your own mistakes in the mean time (and forever, really - programming's a bit like that). Once it works out, though, it's a wonderful feeling of fulfilment.
"Being human, having your health; that's what's important." (from: Magical Shopping Arcade Abenobashi )
"As long as we're all living, and as long as we're all having fun, that should do it, right?" (from: The Eccentric Family )
Avatar: The end of the journey (details); Past avatars.
Before 3.0+1.0 there was Afterwards... my post-Q Evangelion fanfic (discussion)

Reichu
Admin Emeritus
Admin Emeritus
Posts: 24046
Joined: Aug 21, 2004
Location: Sailing for the white shores
Gender: Female
Contact:

  •      
  •      
  • Quote

Postby Reichu » Sat Feb 14, 2015 5:35 am

View Original PostNemZ wrote:Or wade through the incredibly dense, painfully repetitive, and mostly pointless 'complete works' book.

I'm not surprised by your take on Perfect Works in the slightest. :hahaha:

NemZ
Token Misanthrope
Token Misanthrope
User avatar
Posts: 15804
Joined: Jun 28, 2008
Location: St. Louis
Gender: Male

  •      
  •      
  • Quote

Postby NemZ » Sat Feb 14, 2015 6:04 am

Indeed. :emogendo:
Rest In Peace ~ 1978 - 2017
"I'd consider myself a realist, alright? but in philosophical terms I'm what's called a pessimist. It means I'm bad at parties." - Rust Cohle
"Think of how stupid the average person is, and realize that half of 'em are stupider than that." - George Carlin
"The internet: It's like a training camp for never amounting to anything." - Oglaf
"I think internet message boards and the like are dangerous." - Anno


Return to “Completely and Utterly Off-Topic”

Who is online

Users browsing this forum: No registered users and 51 guests