Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Programmeren  (gelezen 1622 keer)

Jorizzz

  • Gast
Programmeren
« Gepost op: 2007/07/30, 14:31:31 »
Hey,

Enkele maanden geleden heb ik in Windows met Microsoft Visual Basic een programma geschreven wat DOSbox aanstuurt om oude (en nieuwe) dosgames op te starten. Inmiddels ben ik dit programma aan het verkopen op een cd met 105 dosgames (zie www.dosgamesdisc.com). Het technische verhaal is heel simpel, het stuurt namelijk gewoon DOSbox aan via de command line.

Om wat te doen te hebben leek het me leuk om een zelfde soort programma te maken voor Linux. Probleem is echter dat ik niet weet wat een makkelijk programmeertaal is voor Linux. Vandaar dat ik nu jullie vraag naar een niet te moeilijke programmeertaal waarmee een idee als dit toch te bereiken is. Wellicht bestaat er zelfs een soort Visual Basic voor Linux (heb ik nog nooit kunnen vinden dus ga er niet van uit dat het bestaat).

Alvast bedankt,

Joris

Offline siegi

  • Lid
  • Steunpunt: Nee
Programmeren
« Reactie #1 Gepost op: 2007/07/30, 14:49:37 »
Misschien is je idee niet zo nieuw en bestaat het al lang voor linux.  En zelfs onder die naam.
Package: dosbox
Priority: optional
Section: universe/otherosfs
Installed-Size: 2100
Maintainer: Ubuntu MOTU Developers
Original-Maintainer: Peter Veenstra
Architecture: i386
Version: 0.70-0ubuntu2~feisty1
Depends: libasound2 (>> 1.0.12), libc6 (>= 2.5-0ubuntu1), libgcc1 (>= 1:4.1.2), libgl1-mesa-glx | libgl1, libpng12-0 (>= 1.2.13-4), libsdl-net1.2, libsdl-sound1.2, libsdl1.2debian (>= 1.2.10-1), libstdc++6 (>= 4.1.2), zlib1g (>= 1:1.2.1)
Filename: pool/universe/d/dosbox/dosbox_0.70-0ubuntu2~feisty1_i386.deb
Size: 683294
MD5sum: c451fd28fa83e6d339b172c91451fe07
SHA1: c6b148893db6049bc5569e66b9bc3dbdcc472484
SHA256: 02c4fae03095c4b11de9e9deab219e48b78aa895b2c612ce4dd51f68f8012772
Description: A x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS
 Dosbox is a x86 emulator with Tandy/Hercules/CGA/EGA/VGA/SVGA graphics,
 sound and DOS. It's been designed to run old DOS-games under platforms that
 don't support it. (Win2k/XP/FreeBSD/Linux/MAC OS X)
 .
 The following legacy sound devices are emulated: PC Speaker, Creative
 CMS/Gameblaster, Tandy 3 voice, Adlib, Sound Blaster Pro/16,
 Disney Soundsource and a Gravis Ultrasound. MPU-401 is forwarded to the host.
 .
 Homepage: http://dosbox.sourceforge.net/
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu

Package: dosbox
Priority: optional
Section: universe/otherosfs
Installed-Size: 1388
Maintainer: Ubuntu MOTU Developers
Original-Maintainer: Peter Veenstra
Architecture: i386
Version: 0.65-1
Depends: libasound2 (>> 1.0.11), libc6 (>= 2.4-1), libgcc1 (>= 1:4.1.1-12), libgl1-mesa-glx | libgl1, libpng12-0 (>= 1.2.8rel), libsdl-net1.2, libsdl-sound1.2, libsdl1.2debian (>= 1.2.10-1), libstdc++6 (>= 4.1.1-12), zlib1g (>= 1:1.2.1)
Filename: pool/universe/d/dosbox/dosbox_0.65-1_i386.deb
Size: 518778
MD5sum: 7a55780ad44413de81be996e0da35104
SHA1: 8b3c3b6c794a2572afab3e70d08f82b2b8be87ce
SHA256: 1355ced2ace4e997a166cd64f0a31adb63dab77e0347a623f30773ac20a584d0
Description: A x86 emulator with Tandy/Herc/CGA/EGA/VGA/SVGA graphics, sound and DOS
 Dosbox is a x86 emulator with Tandy/Hercules/CGA/EGA/VGA/SVGA graphics,
 sound and DOS. It's been designed to run old DOS-games under platforms that
 don't support it. (Win2k/XP/FreeBSD/Linux/MAC OS X)
 .
 The following legacy sound devices are emulated: PC Speaker, Creative
 CMS/Gameblaster, Tandy 3 voice, Adlib, Sound Blaster Pro/16,
 Disney Soundsource and a Gravis Ultrasound. MPU-401 is forwarded to the host.
 .
 Homepage: http://dosbox.sourceforge.net/
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu

Jorizzz

  • Gast
Programmeren
« Reactie #2 Gepost op: 2007/07/30, 14:54:40 »
Haha, om even wat duidelijkheid te scheppen: de cd maakt dus gebruik van deze DOSbox waar jij het over hebt ;) Het programma stuurt DOSbox aan en start de games. Wij pakken DOSbox, wij pakken games en wat we zelf toevoegen is het programma dat zorgt dat je de games makkelijk op kunt starten. Wat ik dus wil weten is hoe ik dat programma in Linux kan schrijven..

Offline siegi

  • Lid
  • Steunpunt: Nee
Programmeren
« Reactie #3 Gepost op: 2007/07/30, 15:11:07 »
moet gewoon in een simpele taal als python gaan

Jorizzz

  • Gast
Programmeren
« Reactie #4 Gepost op: 2007/07/30, 16:13:12 »
Bedankt, ik ga er naar kijken :)

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Programmeren
« Reactie #5 Gepost op: 2007/07/30, 17:04:06 »
Jorizzz: Ik zou Python + PyQt gebruiken, dan kan je het nieuwe programma perfect integreren op Linux, Windows én Mac OS X.
Op Linux zal het programma de Qt stijl overnemen, op Windows de Windows stijl (XP, Vista supported) en op Mac OS X de OS X stijl.

Verder wil ik nog ff kwijt dat Mono een Visual Basic .NET compiler heeft (alleen .NET, geen VB6!
Maar als ik de interface van je programma bekijk lijkt dat op VB.Net want VB6 heeft geen native widget support zoals .NET)

Nou goed, dat laatste heb ik weinig ervaring mee en raad ik ook niet aan.
Ik zou Python + PyQt gebruiken (of gewoon C++/Qt, maar dat kan in het begin moeilijk zijn omdat C++ een stijle leercurve heeft als je geen ervaring hebt met andere lowlevel (midlevel?) talen)

Waarom PyQt en geen PyGtk? Omdat Gtk slecht integreert in Windows en Mac OS X. Het enige voordeel dat je uit Gtk kan persen is dat het de Gtk stijl van het systeem overneemt op linux. Maar dat is tegelijkertijd een nadeel wanneer je doelpubliek KDE gebruikt.

Je kan natuurlijk ook als derde optie de kernfunctionaliteit scheiden van de grafische weergave en zowel een Gtk als Qt frontend schrijven. Dan een slimme functie schrijven die Qt gebruikt op Windows, OS X en KDE, en Gtk op GNOME/XFCE. Zo bereik je iedereen op een aangename manier :)

Ik wil eventueel wel helpen met een Qt interface.

edit: als Qt gebruiker is mijn mening misschien een beetje bevooroordeeld/biased, hou daar dus maar rekening mee :P
als ik zeg dat Qt beter is, is dat nog niet per se zo.. trek je eigen conclusie maar :)


edit 2: omdat Pjotr123 naar deze post linkt wil ik ook nog ff duidelijk maken dat er nog voldoende alternatieven zijn, waaronder bijvoorbeeld wxWidgets. Dat is ook zeer populair en erg stabiel, net zoals Qt.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Programmeren
« Reactie #6 Gepost op: 2007/07/30, 22:57:58 »
Jorizzz: zoiets als dit?



Zoals je kan zien ziet het er ook native uit op Windows (het neemt de Windows stijl over):


Het zou ook de Vista stijl moeten overnemen, maar ik heb geen Vista installatie,
dus dat kan ik jammer genoeg niet laten zien.

Wat ik wel nog kan laten zien is een vervaag effectje dat ik er snel tussen heb gestoken :)
http://www.youtube.com/watch?v=xEBAuFKdkmo

Code is C++/Qt4 en van jou als je wil. Stuur maar een mail.

PS: de gameroutine om het spel daadwerkelijk te starten heb ik er niet inzitten.
En ik weet niet hoe jij je lijst met games en de bijhorende info in je programma steekt,
maar ik heb het zo gedaan:

QList Core::getGameList()
{
QList gameList;
QListWidgetItem *game;

QStringList names, urls, images, details;

// Generate lists
names << "Abmis the Lion"; urls << "abmisthelion";
images << "abmis.gif"; details << "Platform;1996;Freeware";

names << "Acid Tetris"; urls << "acidtetris";
images << "acidtetris.gif"; details << "Tetris-style;1997;Freeware";

// Fill the return list
QStringListIterator n(names), u(urls), i(images), d(details);
while (n.hasNext()) {
game = new QListWidgetItem();

game->setText(n.next());
game->setData(URL, u.next());
game->setData(IMAGE, i.next());
game->setData(DETAILS, d.next());

gameList << game;
}
return gameList;
}
Maar dat kan je natuurlijk nog aanpassen naar een manier die meer toegankelijk is voor jou.

edit:

Owja, schiet me net nog iets te binnen :P

Qt kan niet gebruikt worden in commerciële projecten zonder een commerciële licentie...
En ik zie op je site net dat het een commercieel programma is...

Nouja... ik weet niet of het toegestaan is om de cd met het programma te verkopen
indien de sourcecode van het laadprogramma ook wordt meegeleverd...
Moet ik eens gaan achter horen bij Trolltech.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Jorizzz

  • Gast
Programmeren
« Reactie #7 Gepost op: 2007/07/31, 11:32:04 »
Wow :| Ga je 's avonds werken en ff een biertje drinken, kijk ik nu weer hier is t halve programma al af :P Lol.. Maar ik zal even contact met je opnemen, misschien ga ik de versie voor Linux gratis uitbrengen, maar dat moet ik nog even zien..

edit: zeg maar gewoon Joris hoor ;)

Offline vis

  • Lid
  • Steunpunt: Nee
Programmeren
« Reactie #8 Gepost op: 2007/09/02, 11:14:10 »
Komt er nog zo'n programma uit onder Linux? Ik heb namelijk erg veel dos-games en ben dus erg geintresseerd in dit programma.

Offline markba

  • Lid
    • http://markbaaijens.nl/
  • Steunpunt: Ja
Programmeren
« Reactie #9 Gepost op: 2007/09/02, 11:41:20 »
Citaat van: vis
Komt er nog zo'n programma uit onder Linux? Ik heb namelijk erg veel dos-games en ben dus erg geintresseerd in dit programma.
Voor het spelen van de spellen zelf en zeker als je de spellen zelf al hebt, heb je de disk van jorizzz niet nodig. Installeer dosbox (sudo apt-get install dosbox) en gaan...

Offline vis

  • Lid
  • Steunpunt: Nee
Programmeren
« Reactie #10 Gepost op: 2007/09/02, 12:20:44 »
Bedankt, maar ik zou het mooi vinden om alle spellen in 1 menu te hebben, vandaar.