Autor Wątek: Przenośność C#  (Przeczytany 3963 razy)

Offline Xion

  • Redaktor
    • xion.log

# Czerwiec 24, 2014, 19:38:29
// wydzielono z http://forum.warsztat.gd/index.php?topic=28997.0 -Xirdus

Dam wam radę, darujcie sobie ten cały JS i wskakujcie na C# jeśli chodzi o Unity3d.
A czy przypadkiem pisanie nie ogranicza przenośności rezultatu do platform obsługujących .NET?
« Ostatnia zmiana: Czerwiec 26, 2014, 12:16:01 wysłana przez Xirdus »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline ackg

  • Użytkownik

# Czerwiec 24, 2014, 20:09:51
A czy przypadkiem pisanie nie ogranicza przenośności rezultatu do platform obsługujących .NET?
Nie ogranicza, bo Unity nie korzysta z MS .NET, tylko z Mono.

// Nie ważne czy pisze się w JS czy C#, bo w obu przypadkach i tak jest to kompilowane do kodu bajtowego .NET.
« Ostatnia zmiana: Czerwiec 24, 2014, 20:16:53 wysłana przez ackg »

Offline JasonVoorhees

  • Użytkownik
    • FotoGry

# Czerwiec 24, 2014, 21:57:57
Nie ogranicza, bo Unity nie korzysta z MS .NET, tylko z Mono.

// Nie ważne czy pisze się w JS czy C#, bo w obu przypadkach i tak jest to kompilowane do kodu bajtowego .NET.
Potwierdzam, moi studenci pisali kod w C# i generowali mi Linuksowego builda, działa bez zarzutu ;)

Na Steam są też gry w Unity, ostatnio kupiłem gierkę Knightmare Tower i działa bez zarzutu ;) Wątpię aby używali w niej js.

Offline oyvind

  • Użytkownik
    • Official webpage

# Czerwiec 24, 2014, 22:04:56
Gry Unity można rozbudowywać o biblioteki .dll dla systemu Windows, a działają one również na Linuksie i Macu. Myślę więc, że to właściwość silnika, nie języka, w którym piszemy.

Wątpię aby używali w niej js.
Zdziwiłbyś się :)

Offline Xion

  • Redaktor
    • xion.log

  • +1
# Czerwiec 24, 2014, 22:51:13
Cytuj
Nie ogranicza, bo Unity nie korzysta z MS .NET, tylko z Mono.
Cytuj
Potwierdzam, moi studenci pisali kod w C# i generowali mi Linuksowego builda, działa bez zarzutu ;)
Cytuj
Gry Unity można rozbudowywać o biblioteki .dll dla systemu Windows, a działają one również na Linuksie i Macu.
Wstyd, panowie gamedevowcy, że w dzisiejszych czasach uważacie, iż "przenośność" równa się możliwości uruchomienia na trzech ledwie rodzajach systemów operacyjnych -- z których dwa są w sumie dość podobne do siebie, a wszystkie działają na identycznej platformie sprzętowej.

Nie, nie chodziło mi o desktopy. Wątpiąc w przenośność Unity, miałem na myśli przede wszystkim platformy mobilne. Największe z nich, o ile mi wiadomo, nie obsługują .NET, więc stąd moje wątpliwości co do C#.

Offline ackg

  • Użytkownik

# Czerwiec 24, 2014, 23:00:02
@Xion: to inaczej: na wszystkich platformach, które wspiera Unity będzie działać kod C# tak jak i JS. Przenośność odpada jako czynnik przy wyborze języka.

Offline JasonVoorhees

  • Użytkownik
    • FotoGry

# Czerwiec 24, 2014, 23:01:12
@Xion: Wstyd panie gamedevowcu, że tego nie sprawdziłeś... http://forum.unity3d.com/threads/programming-in-c-on-android.108903/
Wątpliwość rozwiana?

Platformy mobilne... Ma to wzięcie, ale nie zapominaj o grupach docelowych. Noob player gra sobie na telefonie, pro player gra na wielkim telewizorze na PS4 w gry, które nie pójdą na komórze ;)

Offline Xirdus

  • Redaktor

# Czerwiec 24, 2014, 23:03:03
Platformy mobilne... Ma to wzięcie, ale nie zapominaj o grupach docelowych. Noob player gra sobie na telefonie, bogaty noob player gra na wielkim telewizorze na PS4 w gry, które nie pójdą na komórze ;)
FTFY ;)

Tak czy inaczej, niezłego faila trzasnąłeś z tym C#, Xion.

Offline Xion

  • Redaktor
    • xion.log

  • +1
# Czerwiec 25, 2014, 00:32:03
Cytuj
ak czy inaczej, niezłego faila trzasnąłeś z tym C#, Xion.
Wait, zadanie prostego pytania to "fail"? Ciekawa polityka. W każdym razie "dziękuję" za odpowiedź. Nie to, żebym dowiedział się z niej,  jak to dokładnie C# działa na Androidzie, ale przynajmniej wiem już, że podobno działa.

Cytuj
Nie zapominaj, że to ogłoszenie.
Racja. Przepraszam za off-topic.

Offline koirat

  • Użytkownik

# Czerwiec 25, 2014, 02:02:51

Offline ArekBal

  • Użytkownik

# Czerwiec 25, 2014, 02:39:59
Podsumowując na chłopski rozum... dla wszystkich nieogarniających(każdemu się zdarza nie ogarnąć). Mono i dot net jest napisany w C. Ponieważ ten pierwszy jest opensource od dawna, a ten drugi staje się open source powoli od niedawna to można sobie runtime zbudować na wszystko co obsługuje C i pewnie jakiś minimalny C runtime. Czyli (mniej i więcej): średnio stary Andek, WP8(choć tutaj mamy dot net w zestawie) (WP7.1 też by się dało ale hack na haku, oficjalnie brak wsparcia dla "native"), Windowsy, Linuxy, Mac OSy i iOSy, blackberry itd. ... na Windows Mobileu też... No wszędzie gdzie C tam włożysz też więcej lub mniej dot neta...


Offline Vault 11th

  • Użytkownik

# Czerwiec 25, 2014, 11:09:01
Xion: nie podobno, a działa. Zbudowałem mój projekt pisany w C# z myślą o desktopach do targetu: Android, dodając obsługę ekranu dotykowego i śmiga dokładnie tak samo, jak na desktopie.

Offline głos

  • Użytkownik

# Czerwiec 25, 2014, 16:38:15
C# działa na Andku, ale nadaje się tylko do projektów nie wymagających złożonych obliczeń numerycznych. Po prostu mono do edycji biznesowej włącznie na Andku nie ma kompilacji AOT. Może coś zmienią ale na razie jedyne sensowe rozwiązanie w takim przypadku to C++ no chyba że zapłaci się za wersję korporacyjną ($1899/rok)

Offline ArekBal

  • Użytkownik

# Czerwiec 25, 2014, 22:01:00
Co ma AOTC do złożonych obliczeń numerycznych głosie :)

Offline głos

  • Użytkownik

# Czerwiec 26, 2014, 14:01:20
Sposób kompilowania ma zasadnicze znaczenie.
Proste porównanie, które możesz sam wykonać na jakimś własnym kawałku kodu z obliczeniami numerycznymi w C#.
Mając taki kod w C# kompilujesz go z Xamarinem na:
iOS-a (kompilowany do kodu natywnego poprzez AOT) -> wynik znośny (nie jest to może pełna wydajność C++ ale nie jest źle)
Androida (brak AOT do kodu natywnego w edycjach do wersji biznes włącznie, powstaje chyba kod pośredni Androida ale nie sprawdzałem w plikach wynikowych) -> muł, nieużywalne w grach

Inna sprawa to GC, który praktycznie eliminuje C#,.NET i Mono z profesjonalnych zastosowań growych ale to już moja prywatna opinia.