Ecstatica II
Ecstatica II er et action-eventyr- videospil udgivet af Psygnosis i 1997 til MS-DOS og Windows . Det er en direkte fortsættelse af Ecstatica .
Plot
Historien starter lige dér, hvor den første del af spillet slutter, da en navnløs rejsende, der nægter at være prinsen af et unavngivet land, redder Ecstatica fra den dødsdømte by Tirih. Prinsen vender tilbage til sit rige med ekstatisk planlægning af at gifte sig, men finder hans slot ødelagt og fyret og hans folk brutalt myrdet af dæmoner, nisser og barbarer. Så snart han dukker op ved vindebroen, griber en bevinget dæmon Ecstatic og bærer hende væk, mens prinsen bliver væltet af en anden bevinget dæmon. Da han vågner, finder han sig selv bundet til en søjle . Prinsen bliver dog bragt tilbage til livet og befriet af en mirakuløs kvindestemme, der opfordrer ham til at besejre den onde ærkemager og genoprette verdensbalancen ved at genoprette de 7 gamle tegn. Han har også mulighed for at redde sin elskede Ecstatic fra ærkemageren, før han ofrer hende.
Teknologier brugt i udviklingen af spillet
- Usædvanlig ellipsoid grafik
- Til 3D-grafik bruges heltalsmatematik med fast punkt.
- Egen bytekodefortolker til spilscripts og AI.
Interessante kildekodepunkter [1]
- Stilen på koden er meget proceduremæssig og "dos" (hvilket er normalt for midten af 90'erne).
- De objekter (skuespillere), der skal tegnes, er på visningslisten.
- Det meste af hukommelsen er allokeret statisk til data af forskellige typer.
- Nogle gange bruges meget ikke-trivielle datastrukturer.
- Koden til at arbejde med datastrukturer er ikke specielt optimal, men der er ikke mange samtidige objekter i spillet, så dette dukker ikke op.
- Mange ressourcer i ressourcefiler er gemt som samlinger af "begivenheder".
- Takket være "begivenheder" (begivenheder) er meget "datadrevet" (datadrevet). Der er dog også noget, der er stramt "hardcoded" (UI, Init, nogle spiltjek).
- Der er sjove fejl i navnene på procedurer på engelsk. For eksempel "pallet" (palette) og "ambiants" (omgivende). Det vil sige, at engelsk ikke er et modersmål for en programmør.
- For at understøtte SVGA-tilstanden (640x480) blev "hvis'er" hårdkodet i hele koden. Som et resultat understøtter spillet kun to opløsninger: 320x200 og 640x480.
- Nogle gange matcher koden ikke lidt og SVGA-versionen kan fx "glemme" at slette noget fra skærmen, for eksempel en del af interfacet.
- For at kunne skifte mellem VGA og SVGA direkte fra spillet, blev to procedurer GoSVGA () og GoVGA () hurtigt tilføjet koden.
- Support til Win95 blev også tilføjet "for at gøre det hurtigt". I 1996 var understøttelsen af Win95 bare ved at tage fart. For eksempel var håndtering af Windows-meddelelser og reaktion på minimering/gendannelse af et vindue, gendannelse af DirectDraw efter minimering og stop/start af musik på samme tid under Win95 fast "for company" i GetMouse()-proceduren til opdatering af positionen og gentegning af musen cursoren.
- I mange kodeprocedurer er rester af redigeringsressourcetilstanden synlige. Måske fungerer redigeringstilstanden endda, hvis du sætter miljøet op.
Noter
- ↑ EyeGems LiveJournal - Åh, forresten, én gang, åh, forresten, to!
Links
Tematiske steder |
|
---|